WooCommerce:発送方法による配達希望日時の表示・非表示の切り替え(Flexible Shipping)
「WooCommerce」のショッピングカートで、発送方法・配達方法によって、希望配達日時の表示・非表示を切り替える方法です。
「WooCommerce」では時間指定ができないクリックポストや普通郵便などで発送したい場合でも、配達日時の指定を設定で消すことができません。
時間指定のできない配達方法でも間違って時間が指定されて注文が来てしまうので、それをどうにかしたいと考えてこの方法を採用しました。
◆表示・非表示にしたい場所
下記の図の、左側の発送方法の選択によって、右側の「配達希望日時」部分を表示・非表示させます。
発送方法の「クリックポスト」は郵便局の定額サービスで、茶窓では「Flexible Shipping」というプラグインを使って設定しています。「ゆうパック」はWooCommerceで設定しています。
そこで、今回は「Flexible Shipping」で設定した発送方法を選択した場合に、「配達希望日時」部分を非表示にする方法を紹介していきます。
◆発送方法により非表示にする方法
「functions.php」に下記を追加することで、「Flexible Shipping」(プラグイン)で設定した発送方法(茶窓では「クリックポスト」)を選択した場合、CSSで「配達希望日時」指定部分を非表示にできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//「Flexible Shipping」(プラグイン)で設定した発送方法を選択した場合、配達日時指定を非表示にする function flexible_shipping_method( ) { $chosen_shipping_methods = WC()->session->get('chosen_shipping_methods'); if( false !== strpos($chosen_shipping_methods[0],'flexible')) { WC()->session->set("flexible","true"); echo '<style>#order_delivery_date_field{display:none;} </style>' ; echo '<style>#order_delivery_time_field{display:none;} </style>' ; echo '<style>.woocommerce-additional-fields h3{display:none;} </style>' ; } } add_action("woocommerce_review_order_after_shipping", "flexible_shipping_method"); // |