リストボックスで選択した文字列をwp_optionsテーブルに格納するためにはどうすれば良いでしょうか?
-
いつもお世話になっております。
下記の質問についてご存知の方がいらっしゃいましたら、ご教示願います。—
【質問の主旨】
プラグインの管理画面上でリストボックスを作成しました。
ですが任意の文字列を選んで「変更を保存」ボタンをクリックしても、データベースのwp_optionsテーブルにoption_nameとoption_valueに値が入りません。リストボックスで選択した任意の文字列をwp_optionsテーブルに格納するためにはどうすれば良いでしょうか?
【質問の補足】
1.
今回の質問に関わるコードはヘルプが必要なページとしてGitHubにUPしています。2.
その中でも任意の文字列をwp_optionsテーブルに格納するためのコードは以下の通りです。– express.php
https://github.com/echizenyayota/paypal_plugin_3/blob/develop/wp-content/plugins/paypal_expresscheckout/express.php#L94-L95– express_admmin.php
https://github.com/echizenyayota/paypal_plugin_3/blob/develop/wp-content/plugins/paypal_expresscheckout/express_admin.php#L9-L19—
以上、よろしくお願い申し上げます。
ヘルプの必要なページ: [リンクを見るにはログイン]
-
こんにちは
とりあえず、下記のようにすることで保存はできるようになると思います。
なお、register_setting の第2引数は、オプションの名前になるので、WordPress 本体やテーマ、プラグインと被らないような名前にしておいたほうがいいと思います。express.php:
function register_paypalsettings() { register_setting( 'paypal-settings-group', 'client' ); register_setting( 'paypal-settings-group', 'sandbox' ); register_setting( 'paypal-settings-group', 'production' ); }
↓
function register_paypalsettings() { register_setting( 'paypal-settings-group', 'client' ); register_setting( 'paypal-settings-group', 'env' ); }
express_admmin.php:
(省略) <select name="env" size="1"> <option value="sandbox">sandbox</option> <option value="production">production</option> </select> (省略) </form> <?php submit_button(); ?>
↓
(省略) <select name="env" size="1"> <option value="sandbox" <?php selected( get_option( 'env' ), 'sandbox' ); ?>>sandbox</option> <option value="production" <?php selected( get_option( 'env' ), 'production' ); ?>>production</option> </select> (省略) <?php submit_button(); ?> </form>
submit_button() の位置に注意してください。
@ishitaka さん。
いつもコメントありがとうございます。
いただいたアドバイスにつきまして2点ご回答を申し上げます。1.
とりあえず、下記のようにすることで保存はできるようになると思います。
アドバイスいただいた通りにコードを修正すると、
wp_optionsテーブルのoption_nameとoption_valueカラムに
“sanndbox”か”production”のいずれかの値を入力できるようになりました。
https://github.com/echizenyayota/paypal_plugin_3/commit/bb93f7bedabd31f2c6fc11585242f13eeb497ee9#diff-8c3f281d6ccba27ef2d21283b1efa4452.
submit_button() の位置に注意してください。
またformタグ内に
<?php submit_button(); ?>
を入れることによって、
プラグイン管理画面での変更内容が、wp_otionsテーブルにおいて必ず更新できるようになりました。【関連質問】
プラグイン管理画面の入力値が更新されたりされなかったりします
https://ja.wordpress.org/support/topic/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E7%AE%A1%E7%90%86%E7%94%BB%E9%9D%A2%E3%81%AE%E5%85%A5%E5%8A%9B%E5%80%A4%E3%81%8C%E6%9B%B4%E6%96%B0%E3%81%95%E3%82%8C%E3%81%9F%E3%82%8A%E3%81%95%E3%82%8C/もろもろのアドバイスありがとうございます。
これからもどうぞよろしくお願いします。
- トピック「リストボックスで選択した文字列をwp_optionsテーブルに格納するためにはどうすれば良いでしょうか?」には新たに返信することはできません。