基于邮政编码的 Woocommerce 结帐字段

标签 woocommerce checkout

我在结账时有一个 radio 自定义字段。我需要根据所选的邮政编码填充单选字段的选项。如果邮政编码发生变化,我需要更新选项。

add_filter('woocommerce_after_checkout_billing_form', 'cc_custom_checkout_fields');
function cc_custom_checkout_fields($checkout)
{
    woocommerce_form_field('deliveryhours', array(
        'type'          => 'radio', 
        'required'    => false,
        'class'         => array('form-row-wide'),
        'options'     => array(
            '' => __('Select:'),
            'F1' => __('11:00 – 13:00'),
            'F2' => __('13:00 – 15:00'),
            'F3' => __('16:00 – 17:30'),
            'F4' => __('17:30 – 19:00'),
            'F5' => __('19:00 – 21:00')
        )
    ), $checkout->get_value('deliveryhours'));
}

我怎样才能实现这一目标?

谢谢!

最佳答案

如果您想从邮政编码字段重置表单字段,您应该在自定义字段函数中使用 jquery,如下所示:

  add_filter('woocommerce_after_checkout_billing_form', 'cc_custom_checkout_fields');
  function cc_custom_checkout_fields($checkout)
  {
        woocommerce_form_field('deliveryhours', array(
        'type'          => 'radio', 
        'required'    => false,
        'class'         => array('form-row-wide'),
        'options'     => array(
              '' => __('Select:'),
              'F1' => __('11:00 – 13:00'),
              'F2' => __('13:00 – 15:00'),
              'F3' => __('16:00 – 17:30'),
              'F4' => __('17:30 – 19:00'),
              'F5' => __('19:00 – 21:00')
        )
        ), $checkout->get_value('deliveryhours'));

        wc_enqueue_js( "
              // On change Postalcode. #billing_postcode => postal code input field id
              jQuery(document).on('blur','#billing_postcode',function() {
                    var postcode = jQuery(this).val();  
                    if(postcode){
                          jQuery('#deliveryhours_field .input-radio').first().prop('checked', true); // reset radio
                          jQuery(document.body).trigger('update_checkout'); // update checkout 
                    }
              });
        ");
  }

您还可以相应地修改条件。

关于基于邮政编码的 Woocommerce 结帐字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69154146/

相关文章:

php - 在分组产品woocommerce中获取子产品

php - 数据库中的日期条目在哪里 - Cyber​​sourcePK 的 WooCommerce 事件管理器

Python SQL - 两个左连接

javascript - 如何在 magento 2 的结帐页面上获取步骤名称?

php - 根据 WooCommerce 中的自定义字段值将文本添加到订单摘要

wordpress - Woocommerce API - 使用 float 数量创建订单

Woocommerce:回复地址

php - Woocommerce 结帐页面 : remove view cart button & other messages

php - 在 Woocommerce 购物车结账和订单中禁用特定产品的项目名称链接

php - 在 woocommerce 结账时添加自定义税值