前回の記事では、プラグインの設定画面を表示するメソッドを作成しました。今回の記事では入力項目を初期化するメソッドの作成についてご紹介します。
コンストラクタの追記
[php]
public function __construct() {
add_action( ‘admin_menu’, array($this, ‘paypalexpresscheckout_add_admin_menu’) );
add_action( ‘admin_init’, array( $this, ‘paypal_init’ ) ); // 追記
}
[/php]
Echizenya_PayPal_Express_Checkoutクラスのインスタンスが実行されるときに必要なコンストラクタを作成します。設定画面が表示される前のタイミング(admin_initフック)で実行される、paypal_init(クラスメソッド)を登録しておきます。
入力項目を初期化するメソッドの作成
[php]
// 投げ銭機能を準備するメソッド
public function paypal_init() {
}
[/php]
コンストラクタで登録したクラスメソッドのpaypal_initを作成して、内容を定義します。
入力内容を無害化するメソッドの登録
paypal_initメソッドの中で以下のWordPress関数を記述します。
[php]
// 入力内容を無害化するメソッド
register_setting(
‘paypal-settings-group’,
‘echizenya_paypal_express_checkout’,
array( $this, ‘sanitize’ )
);
[/php]
register_setting関数を使って、設定項目と無害化するためのコールバックメソッドを登録します。第一引数の名前は前回の記事で紹介したsettings_fields関数の引数名と同じにします。第二引数はwp_optionsテーブルのoption_nameカラムで使用する名前を引数名とします。第三引数は設定項目を無害化するためのコールバックメソッドを登録します。
入力項目を認識させるメソッドの登録
register_settingと同じく、paypal_initメソッドの中で以下のWordPress関数を記述します。
[php]
// 入力項目を認識させるメソッド
add_settings_section(
‘setting_section_id’,
‘PayPal ExpressCheckout Settings’,
array( $this, ‘print_section_info’ ),
‘paypal-settings-group’
);
[/php]
add_settings_section関数を用いることで、設定画面の入力項目を認識させます。
設定ページのヘッダーを共有するメソッドの登録
register_settingと同じく、paypal_initメソッドの中で以下のWordPress関数を記述します。
[php]
// 設定ページのヘッダーを共有するメソッド
add_settings_section(
’setting_section_id’, // ID
‘Echizenya PayPal ExpressCheckout Settings’, // Title
array( $this, ‘print_section_info’ ), // Callback
‘paypal-settings-group’ // Page
);
[/php]
add_settings_section関数を使って、設定ページのヘッダーを共有します。第三引数で設定ページのセクションについて文字列を表示するメソッドを作成します。また、第四引数の名前はsettings_fields関数の引数名と同じにします。
実行環境の入力準備
同じく、paypal_initメソッドの中で以下のWordPress関数を記述します。
[php]
// 実行環境を入力するメソッドの登録
add_settings_field(
’env’,
’Enviroment’,
array( $this, ‘enviroment_callback’ ),
’paypal-settings-group’,
’setting_section_id’
);
[/php]
add_settings_field関数を使って、実行環境(sandbox or production)の選択項目を設定をします。設定項目の入力部分については第三引数で登録したenviroment_callbackが担当します。また、第四引数の名前はsettings_fields関数の引数名と同じにします。
client IDの入力準備
同じく、paypal_initメソッドの中で以下のWordPress関数を記述します。
[php]
// client IDを入力するメソッドの登録
add_settings_field(
‘client’,
‘cleint ID’,
array( $this, ‘client_callback’ ),
‘paypal-settings-group’,
‘setting_section_id’
);
[/php]
add_settings_field関数を使って、client ID(文字列)の入力項目を設定をします。設定項目の表示は第三引数で登録したclient_callbackが担当します。また、第四引数の名前はsettings_fields関数の引数名と同じにします。なお今回の記事で紹介したコードはGitHubでも公開しています。ご興味のある方はぜひ参考にしてください。その5に続きます。