目次
概要
WordPressで準備した会員サイトにTAKETIN MPプラグインを利用している場合、
TAKETINシステム側で登録されているチケットIDとチケット名を取得する方法はこちらをご参考ください。
取得内容
この記事で取得できるチケット情報は以下の内容となります。
Array
(
[3] => 無料会員
[5] => 有料会員
)
※ [チケットID] => チケット名
取得手順
1. TAKETIN MPのAPI接続設定を確認
チケットの取得にはTAKETINシステムとのAPI通信が必要なため、
前提としてTAKETIN MPの設定画面より、接続に必要な設定が完了しているかを確認頂く必要がございます。
【API連携用URLとAPI接続キーの設定確認について】
https://support.taketin.com/membership/wp_plugin/656#toc-5
2. チケットを取得するソースコードを追記
チケット情報が取得できるメソッドを準備しておりますので、
以下のソースコードを利用するテーマディレクトリの
functions.phpへそのまま追記することでご利用いただけます。
※ /wp-content/themes/[テーマディレクトリ]/functions.phpへ以下を追記
function getUseTickets() {
$hSettings = get_option( 'tmp-settings' );
$endpoint = $hSettings['taketin-system-url'];
$apipass = $hSettings['taketin-app-secret'];
$endpoint = preg_replace('/\/$/', '', $endpoint);
$Tmp = wp_remote_post(
$endpoint.'/api/ticket/',
array(
'sslverify' => false,
'body'=>array(
'apipass'=>$apipass
)
)
);
if(isset($Tmp->errors['http_request_failed'])){
$hApiResult = array('result'=>false);
}else{
$hApiResult = json_decode($Tmp['body'],true);
}
$result = [];
if($hApiResult['result'] && $hApiResult['hTickets']) {
$hTickets = $hApiResult['hTickets'];
foreach ( $hTickets as $key => $value ) {
$result[$key] = $value['name'];
}
}else{
$result = null;
}
return $result;
}
3. 関数呼び出し
任意のテンプレートファイルで以下のように使用することで
チケット情報を取得することができます。
$tickets = getUseTickets();
使用事例
独自に用意したカスタム項目に選択肢としてチケット情報を利用する
プラグイン「Advanced Custom Fields (ACF)」にて準備した
独自のカスタム項目の選択肢にTAKETIN側で登録のあるチケットを出力することが可能です。
それぞれの投稿にチケット情報を紐付けるときなどに活用いただけます。

実装方法
1. ACFプラグインにて項目を追加
- フィールドタイプ:選択
- フィールドラベル:チケットID
- フィールド名:ticket-id

2. functions.phpにて項目の選択肢を変更
WordPressの機能、フィルターフックを利用することで実装しています。
functions.php
// 「チケットID」の選択肢をTAKETINで登録のあるチケットへ変更する
function acf_load_backNumber_field_choices( $field ) {
$field['choices'] = array();
$hTickets = getUseTickets();
foreach ( $hTickets as $hTicketId => $hTicketName ) {
$field['choices'][$hTicketId] = $hTicketName;
}
return $field;
}
// ticket-idは任意のフィールド名へ
add_filter('acf/load_field/name=ticket-id', 'acf_load_backNumber_field_choices');
