在 Woocommerce 3+ 中自定义一些结帐字段属性

Posted

技术标签:

【中文标题】在 Woocommerce 3+ 中自定义一些结帐字段属性【英文标题】:Customize some checkout fields properties in Woocommerce 3+ 【发布时间】:2019-05-19 23:10:20 【问题描述】:

我已通过 WooCommerce 设置更新了购物篮字段的占位符,如下所示:

但是在前端,之前的占位符仍然存在:

我还使用了以下代码,改编自另一个 *** 线程,旨在覆盖占位符内容,但默认值仍然存在。

add_filter('woocommerce_default_address_fields', 'override_default_address_checkout_fields', 20, 1);
function override_default_address_checkout_fields( $address_fields ) 
    $address_fields['state']['placeholder'] = 'State';
    $address_fields['postcode']['placeholder'] = 'Postcode';
    return $address_fields;

请告知我如何实现所需的占位符文本!

【问题讨论】:

希望你把上面的代码放到激活主题下的functions.php文件中 是的,它在活动子主题的functions.php文件中。 【参考方案1】:

在 woocommerce 默认中,没有您描述的设置。因此,您正在使用第三方插件来自定义字段。所以你需要尝试多种钩子优先级更高的方法。

那就一个一个试试吧:

1)。使用woocommerce_default_address_fields过滤钩子(具有更高优先级的钩子)

add_filter('woocommerce_default_address_fields', 'customize_default_address_fields', 10000, 1 );
function customize_default_address_fields( $address_fields ) 
    $address_fields['state']['placeholder'] = __('State', 'woocommerce');
    $address_fields['postcode']['placeholder'] = __('Postcode', 'woocommerce');
    return $address_fields;

2)。使用woocommerce_checkout_fields过滤钩子:

add_filter('woocommerce_checkout_fields', 'customize_checkout_fields', 10000, 1 );
function customize_checkout_fields( $fields ) 
    $fields['billing']['billing_state']['placeholder'] = __('State', 'woocommerce');
    $fields['shipping']['shipping_state']['placeholder'] = __('State', 'woocommerce');
    $fields['billing']['billing_postcode']['placeholder'] = __('Postcode', 'woocommerce');
    $fields['shipping']['shipping_postcode']['placeholder'] = __('Postcode', 'woocommerce');
    return $fields;

3)。使用woocommerce_billing_fieldswoocommerce_shipping_fields 过滤钩子:

add_filter('woocommerce_billing_fields', 'customize_billing_fields', 10000, 1 );
function customize_billing_fields( $billing_fields ) 
    $billing_fields['billing_state']['placeholder'] = __('State', 'woocommerce');
    $billing_fields['billing_postcode']['placeholder'] = __('Postcode', 'woocommerce');

    return $billing_fields;


add_filter('woocommerce_shipping_fields', 'customize_shipping_fields', 10000, 1 );
function customize_shipping_fields( $shipping_fields ) 
    $shipping_fields['shipping_state']['placeholder'] = __('State', 'woocommerce');
    $shipping_fields['shipping_postcode']['placeholder'] = __('Postcode', 'woocommerce');

    return $shipping_fields;

所有代码都在您的活动子主题(或活动主题)的 function.php 文件中。

我希望其中一个能够奏效。如果没有第三方插件,这些代码中的每一个都可以完美运行。

【讨论】:

我认识你!再次感谢您的帮助,我通过列表和解决方案 2 发挥了魅力。我想了解有关 WooCommerce 工作原理的更多信息:您能推荐一个好的起点吗? @chris45 *** 和 Woocommerce 文档和源代码 :)

以上是关于在 Woocommerce 3+ 中自定义一些结帐字段属性的主要内容,如果未能解决你的问题,请参考以下文章

在帐单/运输表单中自定义占位符

使 Woocommerce (3.8.0) 管理员电子邮件包含结帐页面中的自定义字段数据

Woocommerce 3中的自定义结帐字段和运输方式ajax交互

在Woocommerce管理订单页面中显示自定义结帐字段值

在购物车和结帐的 WooCommerce 产品名称中附加自定义字段值

Woocommerce 中特定支付网关的结帐附加字段