Contact Form 7 Datepickerに非推奨なクラスと関数があります
この記事はContact Form 7 ver.4.7と、Contact Form 7 Datepicker ver.2.6.0に関するものです。
WordPessにフォームを表示させようとする時、最初に思い浮かぶのはContact Form 7だと思います。
使い勝手が良い上に、設定からカスタマイズ、トラブルシューティングの情報を集め易いので、幅広い層に使われています。
また機能を拡張するプラグインが多いのも便利です。
よく使われているContact Form 7の機能拡張プラグインの1つに Contact Form 7 Datepickerが有ります。
jQuery UI の日付ピッカーを使用して、表示されたカレンダーの日付をクリックする事で日付フィールドに日付を挿入させるプラグインです。
html5になり、Google ChromeやOperaなど対応しているブラウザではinput要素のtype属性がdateの箇所にブラウザ独自の日付ピッカーが表示されるのですが、IEやFirefox、Safariなどでの対応が進んでいないので、まだ暫くは必要な拡張プラグインです。
Contact Form 7の最新バージョンはver.4.7、Contact Form 7 Datepickerはver.2.6.0ですが、
のこバージョンの組み合わせでも、Wordpressをデバッグモードで運用していると
PHP Notice: WPCF7_Shortcode の使用は Contact Form 7 バージョン 4.6 から非推奨になっています! 代わりに WPCF7_FormTag を使ってください。 in /path-to/plugins/contact-form-7/includes/functions.php on line 357
PHP Notice: wpcf7_remove_shortcode の使用は Contact Form 7 バージョン 4.6 から非推奨になっています! 代わりに wpcf7_remove_form_tag を使ってください。 in /path-to/plugins/contact-form-7/includes/functions.php on line 357
と警告が出ます。
Contact Form 7 Datepickerに非推奨のクラスや関数が使われている様です。
WPCF7_Shortcode に関しては、「Contact Form 7」サイトの「Contact Form 7 4.6」リリース情報に、
WPCF7_Shortcode クラスは廃止予定につき使用非推奨になります。カスタムコードで WPCF7_Shortcode を使用している場合は WPCF7_FormTag に変更してください。
と書かれています。
そして次のクラスと関数が廃止予定なので、代替のクラスと関数に置き換える様にとの事。
廃止予定 | 代替 |
---|---|
WPCF7_Shortcode | WPCF7_FormTag |
WPCF7_ShortcodeManager | WPCF7_FormTagsManager |
wpcf7_add_shortcode() | wpcf7_add_form_tag() |
wpcf7_scan_shortcode() | wpcf7_scan_form_tags() |
wpcf7_remove_shortcode について書かれたものはないのですが、PHP Notice から wpcf7_remove_form_tag に置き換えてやる必要が有ります。
PHP Notice では plugins / contact-form-7 / includes/functions.php on line 357 で WPCF7_Shortcode や wpcf7_remove_shortcode が使われている様になっていますが、実際はincludeされた Contact Form 7 Datepicker ver.2.6.0 のコード内のものに警告が出ている筈ですので、調べてみると、
WPCF7_Shortcode は plugins / contact-form-7-datepicker / modules / datetime.php 25〜26行
25 26 |
public static function shortcode_handler($tag) { $tag = new WPCF7_Shortcode($tag); |
と plugins / contact-form-7-datepicker / modules / date.php 31〜32行
31 32 |
public static function shortcode_handler($tag) { $tag = new WPCF7_Shortcode($tag); |
に有るので、
1 |
new WPCF7_Shortcode($tag) |
を
1 |
new WPCF7_FormTag($tag) |
と置き換えてやります。
wpcf7_remove_shortcode は plugins / contact-form-7-datepicker / modules / date.php 145〜153行
145 146 147 148 149 150 151 152 153 |
public static function add_shortcodes() { if (function_exists('wpcf7_add_form_tag')) { // Remove Contact Form 7's date module wpcf7_remove_shortcode('date'); wpcf7_remove_shortcode('date*'); wpcf7_add_form_tag(array('date', 'date*'), array(__CLASS__, 'shortcode_handler'), true); } } |
にあるので、
148 149 |
wpcf7_remove_shortcode('date'); wpcf7_remove_shortcode('date*'); |
を
148 149 |
wpcf7_remove_form_tag('date'); wpcf7_remove_form_tag('date*'); |
と置き換えてやります。
これで警告は出なくなります。