MENU

WordPressの「投げ銭プラグイン」を作ってみよう(その3)~ 管理画面で選択した要素(変数)の受け渡しについて

wordpress_nagesenplugin_paypal_1
あわせて読みたい
WordPressの「投げ銭プラグイン」を作ってみよう(その2)~プラグイン管理画面の表示と設定 https://e-yota.com/webservice/wordpress_nagesenplugin_paypal_1/ 前回の記事では「投げ銭」の意味について、法律・経済・歴史の観点から考察しました。今回はWordPre...

その2の続きです。引き続きユーザーが管理画面で選択したPayPalボタンの色を、送信できるようにコーディングを進めていきましょう。

目次

inputタグの追加

[php]
<input type="hidden" id="btncolor" value="">
[/php]

express_admin.phpの13行目にtype属性を”hidden”、id属性を”btncolor”としたinputタグを記述します。

inputタグの属性値を読み込むための関数を作成

[php]
// クリックしたPayPalボタンの色の属性値を読み込む
function btncolor_scripts() {
wp_enqueue_script( ‘btncolor-script’, plugin_dir_url( __FILE__ ) . ‘/js/buttoncheckout.js’, array( ‘jquery’ ));
}
add_action( ‘wp_enqueue_scripts’, ‘btncolor_scripts’ );
[/php]

次にクリックしたPayPalボタンの色の属性値を読み込むために、btncolor_scripts関数を、管理画面の設定と表示をするexpress_admin.php内で作成します。

ボタン要素を取得するためのjQueryコード

[php]
jQuery(document).ready(function() {
‘use strict’;
jQuery(‘#btncolor’).on(‘click’, function() {
if (jQuery(‘#btncolor’).val() === ”) {
alert(‘Choose One!’);
} else {
console.log(jQuery(‘form’).submit());
}
});
});
[/php]

btncolor_scripts関数ではbuttoncheckout.jsを読み込むことになっています。そのbuttoncheckout.jsを作成して、上述したinputタグのid属性を読み込んで、色の文字列をフォームに送信します。

wp_localize_script関数の記述

フォームに送信した文字列は、最終的にexpresscheckout.jsのcolorプロパティに管理画面で選択した色を入力する必要があります。ただし、buttoncheckout.jsで送信した文字列をexpresscheckout.jsのcolorプロパティに直接入力しません。

[php]
wp_localize_script( ‘paypal-expresscheckout’, ‘paypal_expresscheckout_param’, array(
‘color’ => ”, // gold, blue, silver, black
) );
[/php]

buttoncheckout.jsで送信した文字列は、JavaScriptの変数のデータと登録スクリプトをローカライズするためのwp_localize_script関数の第四引数で使われている連想配列の要素として、一旦入力します。上記のwp_localize_script関数の記述をexpress.phpのpaypal_scripts関数に追加します。

選択した要素を変数としてJSファイルに渡す

[php]
style: {
// color: blue,
color: paypal_expresscheckout_param.color,
size: ‘small’
},
[/php]

第四引数で入力された連想配列の要素は、第二引数のpaypal_expresscheckout_paramとして認識されます。wp_localize_script関数は、JavaScriptの変数(管理画面で選択したgold, blue, silver, blackのいずれか)を登録スクリプトであるexpresscheckout.js内のpaypal_expresscheckout_param.colorに代入します。

なお今回の記事で紹介したコードはGitHubにて公開しています。

wordpress_nagesenplugin_paypal_1

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次