チェックアウトページに新しい日付フィールドを追加しました。日付ベースの配送料計算を作成したいのですが。
日付フィールドは ' update_totals_on_change 'クラスを持ちます。これを手動で変更すると、合計が予想どおりに再計算されます。残念ながら、このフィールドでjQueryの日付ピッカーを使用すると、合計が更新されません。
私の意見では、datepickerのコールバックで update_checkout メソッドをトリガーするべきです。 WooCommerceのcheckout.js
スクリプトには input_changed()があります。 これは $( 'body').trigger( 'update_checkout')を起動します。 。しかし、日付ピッカーのコールバックから直接呼び出すことはできません。
jQuery("#delivery_date").datepicker({
minDate: new Date(),
firstDay: 1,
onSelect: function () {
$( 'body' ).trigger( 'update_checkout' );
}
});
Datepickerでupdate_totals_on_change機能を使用するにはどうすればよいですか?
編集する
change() 関数をトリガーして試しましたが、コールバック関数が呼び出されると日付ピッカーが動作しなくなります。
jQuery("#delivery_date").datepicker({
minDate: new Date(),
firstDay: 1,
onSelect: function () {
$(this).change();
}
});
スタンドアロンコールバックでトリガをラップしてみてください。
jQuery(function() {
jQuery( "#datetimepicker" ).datetimepicker({
onClose:function(ct,$i){
my_callback();
}
});
function my_callback() {
jQuery( 'body' ).trigger( 'update_checkout' );
}
});