furefure
Forum Replies Created
-
Forum: Plugins
In reply to: [Japanized For WooCommerce] 配達予約可能開始日を0に設定できない私も同じ現象になりました。
WooCommerceを使用したECサイトの制作をしております。
動作の原因を追ってみましたらプラグイン本体のPHPで暫定対処できそうな箇所がありましたので共有させていただきます。今回は管理画面の「配達予約可能開始日」と支払いページの「配達希望日」の表示部分の暫定的な対応です。「配達予約可能開始日」登録部分に原因の根っこがあるようですが到達できませんでした。
そこのところご理解いただける方は、ご自身で動作確認の上ご判断をお願いいたします。合わせて職人工房様の方でご対応いただけると助かります。
* 私は別途理由(お客様側の事情)で当面は指定日を有効にしない運用にしています。
[プラグイン]
Japanized for WooCommerce バージョン 2.2.6
[事象]
予約可能開始日を0(当日)で指定すると、2(翌々日)に更新される。
私は2箇所(2ファイル)修正しました。
——————————————–
[対象ファイル1:管理画面]
/includes/class-jp4wc-admin-screen.php
[関数:line 644]
jp4wc_start_date()
[修正箇所:line 647]
$this->jp4wc_plugin->jp4wc_input_number(‘start-date’, $description, 2, $this->prefix);
↓
$this->jp4wc_plugin->jp4wc_input_number(‘start-date’, $description, 0, $this->prefix);
[考察]
クラス化されたjp4wc_plugin->jp4wc_input_numberへの第三引数がデフォルト値として扱われており、管理画面の「配達予約可能開始日」に初期値が2(inputのvalue=2)で表示されます。
実際には初期値が何にしろ管理画面でinputに入力し直した値で更新されるはずですが、0を入力した場合だけ、初期値の2で登録されます。そのため第三引数の「2」を「0」に変更しました。
管理画面の「配達予約可能開始日」、「配達予約可能期間」の登録後に初期値が再表示されるので、実際に何日で設定されているかが管理画面から確認できないのは不便ですね。
* 初期値でなく入力された数字で登録されていることは支払いページの実際の動作で確認できます。
——————————————–
[対象ファイル2:支払いページ]
/includes/class-jp4wc-delivery.php
[関数:line 74]
delivery_date_display($setting)
[修正箇所:line 80]
$setting[‘start-date’] = $setting[‘start-date’] + 1;
↓
$setting[‘start-date’] = intval($setting[‘start-date’]) + 1;
[考察]
管理画面で「配達予約可能開始日」に「0」が入力された場合に、「DB:wp_options」の「wc4jp-start-date」に、値が「」(空白)で登録されています。(*)
そのまま処理を実行すると集荷時間を過ぎて翌日から指定できるように「+1」するロジックで計算エラーになります。上記の「class-jp4wc-admin-screen.php」修正で「0」の入力を有効にしたので、「」(空白)の際に「0」になるように、intvalで数値変換しました。
* 本当はその箇所を突き止めたかったのですが分かりません。
——————————————–