Japanized for woocommerceの希望配達日、時間帯表示の機能を代替するプラグイン Delivery-Date-Checker を
開発しました。
配送手段に応じて 配達日の表示/非表示切り替え ができます。
Japanized for woocommerceとは考え方が異なり、曜日ごとの定休日や休日の設定 もできます。
クラシック購入ページだけでなく、最新の Checkout Blocks に対応しています。
更にヤマト運輸のマスターパックを読み込んで直近の正確な配達可能日と時間帯を表示することもできます。
詳しくはこちら->
以下は、クラシック購入ページに関する以前の記述です。Checkout Blocksには対応できません。
クリックポストは配達日時指定ができません。ハガキや封書などと同じ扱いです。
当店では宅急便とクリックポストのどちらかを選べますが、希望配達日時欄を表示したり隠したりできませんでした。
つまりクリックポストを選んでも配達日時を設定できてしまっていました。
現在は下記のコードを使ってこの不具合を解消しています。
function my_get_shipping_name( ) {
$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", "my_get_shipping_name");
“flexible”というのは、運賃計算に”Flexible shipping”というプラグインを使っていていることに起因します。
クリックポストを選んだ時に内部的にはflexible_shippingという文字列が使われます。
このコードがやっていることは、クリックポストが選ばれたら希望配達日時の部分を消すCSSを書くということです。woocommerce_review_order_after_shipping がミソで、このフックを使うと、宅急便<->クリックポストの切り替えがうまくいきます。
