myCREDはWordPressに様々なポイント機能を簡単に追加できるプラグインです。
myCREDは基本機能だけでも十分な機能があるのですが、豊富なAdd-onやAPI、開発環境が用意されており、拡張性が非常に高いプラグインとなっています。
その拡張性を強力に高める「関数(function)」をここではご紹介します。
myCREDの関数を使えるようになると、非常に高機能なポイントサービスを提供できるようになります。
例えば、
- 好きな場所にポイント数を表示する。
- ポイント数に応じたイベントを実行できるようになる。
- ポイントをフックにしてメールを配信できる。
- etc.
Contents
myCREDにおける関数の構造
※ここは重要ではないので、興味がある人だけ読んで下さい。
myCREDの基本的な関数は”mycred\include\mycred-functions.php”に記述されています。これらはWordPressのプラグイン設定でmyCREDを有効にした時に読み込まれます。
更に”mycred\addons”以下の各Add-on毎のディレクトリ内にAdd-onに準じた関数が用意されています。これらはmyCREDの設定でAdd-onを有効にした時に読み込まれます。
つまり、Add-onを追加すると使える関数も増えます(勿論、Add-onが関数を用意している場合のみ)。
myCREDに用意されている関数
デフォルトでmyCREDには以下の関数が用意されています。
※実際はもっと多くの関数が用意されてます。
buycred_complete_pending_payment
buycred_gateway
buycred_get_pending_payment
buycred_get_pending_payment_id
buycred_get_users_pending_payments
buycred_trash_pending_payment
mycred
mycred_add
mycred_add_new_notice
mycred_add_user_meta
mycred_assign_badge
mycred_assign_badge_to_user
mycred_assign_ranks
mycred_badge_level_reached
mycred_centralize_log
mycred_content_purchase_has_expired
mycred_count_all_ref_instances
mycred_count_ref_id_instances
mycred_count_ref_instances
mycred_count_users_with_badge
mycred_count_users_without_badge
mycred_coupon_was_successfully_used
mycred_create_chart
mycred_create_new_coupon
mycred_date_to_gmt_timestamp
mycred_delete_recurring_payout
mycred_delete_user_meta
mycred_display_badge_requirements
mycred_display_users_badges
mycred_display_users_balance
mycred_display_users_total_balance
mycred_exclude_user
mycred_find_users_rank
mycred_flush_widget_cache
mycred_force_singular_session
mycred_get_account
mycred_get_badge
mycred_get_badge_ids
mycred_get_badge_references
mycred_get_content_buyers_count
mycred_get_content_price
mycred_get_content_sales_count
mycred_get_coupon
mycred_get_email_notice
mycred_get_global_coupon_count
mycred_get_module
mycred_get_my_rank
mycred_get_point_type_name
mycred_get_rank
mycred_get_rank_logo
mycred_get_rank_object_id
mycred_get_ranks
mycred_get_recurring_payout
mycred_get_recurring_payout_schedul …
mycred_get_remote
mycred_get_settings_network
mycred_get_total_by_time
mycred_get_transfer
mycred_get_unique_coupon_code
mycred_get_user_id
mycred_get_users_badges
mycred_get_users_balance
mycred_get_users_coupon_count
mycred_get_users_of_rank
mycred_get_users_profile_url
mycred_get_users_rank
mycred_get_users_rank_id
mycred_get_users_reference_sum
mycred_get_users_total_balance
mycred_get_woo_product_reward
mycred_have_ranks
mycred_is_admin
mycred_label
mycred_new_transfer
mycred_override_settings
mycred_post_is_for_sale
mycred_post_type_for_sale
mycred_query_users_total
mycred_rank_has_logo
mycred_refund_transfer
mycred_sell_content_new_purchase
mycred_sell_content_payment_buttons
mycred_sell_content_post_id
mycred_subtract
mycred_transfer
mycred_use_coupon
mycred_user_can_transfer
mycred_user_paid_for_content
基本的な関数の形式
通常のPHPの関数形式と変わりません。
関数名(引数)
となっており、基本的に値を返すようになっています。
関数の記述例
「mycred_display_users_balance」を例にとります。「mycred_display_users_balance」は、現在の「所持ポイント数」を表す関数です。
mycred_display_users_balance( 19 );
※19はユーザーID
関数の具体的な使用方法
関数は通常通り、テンプレートファイルにそのまま記述すれば良いだけです。
基本的にフックポイント等は必要ありません。
具体的な関数の記述例
テンプレートファイル内に記述するだけです。
先程の「mycred_display_users_balance」を例にとります。ヘッダー部分にユーザーが所持しているポイント数を表示する方法です。
●header.phpに記述
<p>あなたのポイント数:
<?php
$user_id = get_current_user_id();
echo mycred_display_users_balance( $user_id );
?>
pt</p>
表示内容
あなたのポイント数:100pt
上記の関数記述の解説を少ししますと、
「mycred_display_users_balance」は引数にユーザーIDが必須となる(ポイント所持者を特定するため)ので、別途ユーザーIDを導き出す「get_current_user_id」という関数を使って、ユーザーIDを$user_idに代入します。
その$user_idを引数にして「mycred_display_users_balance」を使い、echoで表示させるという感じです。
簡単ですね!