将 Woocmmerce 结帐页面中的邮政编码字段更改为下拉菜单
Posted
技术标签:
【中文标题】将 Woocmmerce 结帐页面中的邮政编码字段更改为下拉菜单【英文标题】:Changing Postcode field in Woocmmerce's checkout page to drop-down 【发布时间】:2020-09-12 00:10:44 【问题描述】:我的 Woocommerce 商店的订单有基于邮政编码的最低订单金额。 此外,一旦用户键入邮政编码,例如他需要多少才能结帐,我就会出现基于邮政编码的自定义错误消息。 因此,为了防止用户输入无效的邮政编码(这意味着我们不提供的邮政编码),我正在显示下拉菜单以在结帐页面中选择他的有效邮政编码。
基于此线程Change postcode shipping field to a dropdown in Woocommerce,我可以将邮政编码字段转换为带有选项的下拉列表。
但是当我从下拉列表中选择任何选项时,我收到 Woocommerce 的“邮政编码无效”错误。我的自定义消息也没有显示。
下面是我在上面线程中使用的代码。
add_filter( 'woocommerce_default_address_fields' , 'customize_postcode_fields' );
function customize_postcode_fields( $adresses_fields )
$adresses_fields['postcode']['type'] = 'select';
$adresses_fields['postcode']['options'] = array(
'' => __('Select your postcode', 'woocommerce'),
'option_1' => '000001',
'option_2' => '000002',
'option_3' => '000003'
);
return $adresses_fields;
【问题讨论】:
【参考方案1】:尝试改用以下内容:
add_filter( 'woocommerce_default_address_fields' , 'customize_postcode_fields' );
function customize_postcode_fields( $adresses_fields )
$adresses_fields['postcode']['type'] = 'select';
$adresses_fields['postcode']['input_class'] = array('state_select');
$adresses_fields['postcode']['options'] = array(
'' => __('Select your postcode', 'woocommerce'),
'000001' => '000001',
'000002' => '000002',
'000003' => '000003'
);
return $adresses_fields;
代码进入您的活动子主题(或活动主题)的 functions.php 文件中。 在 Storefront 主题下的最后一个 WooCommerce 版本 4.5.1 上测试并运行。
【讨论】:
嗨,谢谢你的回答,但是当我从下拉列表中选择一个选项时,Woocommerce 仍然说邮政编码无效...... 我是否需要更改 Woocommerce 核心文件中的任何内容? @Tom 您是否对结帐字段进行了任何自定义?如果是,您应该在您的问题中提供所有相关代码,并提供更多解释和详细信息……现在我需要在我这边进行一些测试,然后再回复您。 @Tom 刚刚在 Storefront 主题下的最后一个 Wordpress/WooCommerce 版本上进行了测试,并且在下订单时它可以完美运行而不会引发任何错误。所以问题出在您的其他自定义设置、第三方插件或您的主题上。 特别是“woocommerce_default_address_fields”钩子,我没有做任何自定义。我只是根据客户邮政编码显示最小订单金额错误消息以上是关于将 Woocmmerce 结帐页面中的邮政编码字段更改为下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章
使 Woocommerce (3.8.0) 管理员电子邮件包含结帐页面中的自定义字段数据