WordPress│codocの価格をカスタムフィールに同期する方法│全11種類のパラメータ取得

codocというプラグインを使うとWordPressで有料noteみたいなことができて、マネタイズするのに便利なのです。

じゃあどの記事が有料記事でいくらなのか?

価格をリストにしているのですが、こういうことはカスタムフィールドを使っています。

その方がいろいろなカスタマイズで使えるのですが、codocのパラメータ(価格)はブロックもといAPI側で値を持っているので

全11種類のパラメータが全て取得できます。

その価格をカスタムフィールドに同期するコードを作成してみました。

こんな感じで記事にcodocがあればその記事のカスタムフィールドに同期されます。

常にだと負荷がかかるので、管理画面から好きなタイミングで同期するようにしています。

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

WordPressでcodocの価格をカスタムフィールに同期する方法

やり方は簡単です。

コードを貼るだけです。

カスタムフィールドの設置

functions.phpに以下のコードを貼ります。

エラーが怖い人はCode Snippetsのプラグインを入れて、そこからコードを挿入しましょう。

// 投稿画面にカスタムフィールドエリアを追加
add_action('admin_menu', function () {
  add_meta_box(
    'custom_price_box',
    '価格',
    'render_custom_price_field',
    'post',
    'side',
    'default'
  );
});

// 入力欄の出力
function render_custom_price_field($post)
{
  wp_nonce_field('save_custom_price', 'custom_price_nonce');
  $price = get_post_meta($post->ID, 'price', true);
  echo '<label for="price">価格(円)</label>';
  echo '<input type="number" id="price" name="price" value="' . esc_attr($price) . '" style="width:100%;" />';
}

// 保存処理
add_action('save_post', function ($post_id) {
  if (!isset($_POST['custom_price_nonce']) || !wp_verify_nonce($_POST['custom_price_nonce'], 'save_custom_price')) return;
  if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
  if (isset($_POST['price'])) {
    update_post_meta($post_id, 'price', sanitize_text_field($_POST['price']));
  }
});

これで記事に価格のカスタムフィールドが設置されました。

codocの価格をカスタムフィールドpriceに同期するコード

下記のコードもfunctions.phpに貼ります。

管理画面のツールからcodoc価格同期を選択

codoc価格を全投稿から抽出して保存を押すと、codocが設定されている記事に対して価格が同期されます。

以下、コードです。

他にcodocで設定する全てのパラメータ(11種類)を取得する方法をかいておきます。
これを使ってさらにカスタマイズすることもできます。

  • URLをコピーしました!

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトのカスタマイズのサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次