会員サイト機能

[開発者様向け]TAKETINシステムに登録のチケット情報を取得する方法

概要

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

ACFプラグイン項目追加

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');

関連記事はこちら

[開発者様向け]ログインしている会員情報を取得する方法

概要 WordPressで準備した会員サイトにTAKETIN MPプラグインを利用している場合、 ログインしている会員の情報を取得し...
2023.07.31
TOP