目前,我为本地拾取选项设计了一些功能。其中一个功能是,当选中“用户本地取货”选项时,将存在一个自定义字段,供客户选择要取货的商店。
add_action( 'woocommerce_review_order_before_payment', 'store_select' );
function store_select ( $checkout ) {
echo '<div id="show-if-shipping-store-pickup"><h3>Store Pickup 分店自取</h3>';
woocommerce_form_field( 'store_pickup_selection', array(
'type' => 'select',
'class' => array('store_select'),
'required' => true,
'label' => __('Select Store'),
'options' => array(
'blank' => __('Select a store', 'store_pickup' ),
'Causeway Bay' => __('Causeway Bay', 'store_pickup' ),
'Tsim Sha Tsui' => __('Tsim Sha Tsui', 'store_pickup' ),
'Tsuen Wan' => __('Tsuen Wan', 'store_pickup' )
)
));
echo '</div>';
}
但是,当客户选择其他选项(如统一费率或免费送货)时,尽管jquery隐藏了自定义表单,但无法处理 checkout 过程。由于我的设置,表格是必需的。
下面是我在选择其他配送方式(免费配送和固定费率)时隐藏自定义表单的代码。
add_action( 'woocommerce_after_checkout_form', 'bbloomer_show_hide_timeslot' );
function bbloomer_show_hide_timeslot( $available_gateways ) {
?>
<script type="text/javascript">
// ||val.match("free_shipping:11") || val.match("flat_rate:8")
function show_timeslot( val ) {
if ( val.match("local_pickup:9")) {
jQuery('#show-if-shipping-timeslot').fadeIn();
} else {
jQuery('#show-if-shipping-timeslot').fadeOut();
}
}
jQuery(document).ajaxComplete(function() {
var val = jQuery('input[name^="shipping_method"]').val();
show_timeslot( val );
});
</script>
暂无答案!
目前还没有任何答案,快来回答吧!