【发布时间】:2021-09-16 04:00:47
【问题描述】:
所以我有这个代码,它检测交付方式并添加额外的选择选项。
add_filter( 'woocommerce_review_order_before_payment', 'localdealers_checkout_fields' );
function localdealers_checkout_fields() {
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
if ( 0 === strpos( $chosen_shipping, 'local_pickup:2' ) ) {
echo '<div id="localdealers_checkout_field" class="row"><div class="col-12 col-lg-6 offset-lg-6">
<h3>' . __('Local dealer', 'my_theme_slug') .
'<span>(extra paid)</span></h3>'
;
// The selector
woocommerce_form_field( 'local_dealers', array(
'type' => 'select',
'required' => true,
'class' => array('my-field-class form-row-wide'),
'label' => __('Chose location', 'my_theme_slug'),
'options' => array(
'' => __('Location address', 'my_theme_slug'),
'option1' => 'Address 1',
'option2' => 'Address 2'
)
), WC()->checkout->get_value( 'local_dealers' ));
echo '</div></div>';
}
}
问题在于,当更改交付选项时,此函数不会被触发。所以它只适用于页面重新加载。
jQuery('body').trigger('update_checkout'); 没有帮助。
有什么想法吗?
【问题讨论】:
标签: jquery wordpress woocommerce checkout shipping-method