在Woocommerce 3+中自定义一些结帐字段属性 [英] Customize some checkout fields properties in Woocommerce 3+

查看:64
本文介绍了在Woocommerce 3+中自定义一些结帐字段属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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





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





我还使用了以下代码,该代码是从另一个StackOverflow线程改编而来的,该线程旨在覆盖占位符内容,但默认设置仍然存在。

  add_filter('woocommerce_default_address_fields','override_default_address_checkout_fields',20,1); 
函数override_default_address_checkout_fields($ address_fields){
$ address_fields ['state'] ['placeholder'] =‘State’;
$ address_fields ['邮政编码'] ['占位符'] =‘邮政编码’;
return $ address_fields;
}

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

解决方案

在woocommerce默认情况下,没有您所描述的设置。因此,您正在使用第三方插件来自定义字段。因此,您需要尝试具有较高挂接优先级的多种方式。


因此,一个接一个地尝试:


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

  add_filter('woocommerce_default_address_fields','customize_default_address_fields',10000,1); 
函数customize_default_address_fields($ address_fields){
$ address_fields ['state'] ['placeholder'] = __('State','woocommerce');
$ address_fields [邮政编码] [占位符] = __(邮政编码, woocommerce);
return $ address_fields;
}

2)。使用 woocommerce_checkout_fields 过滤器挂钩:

  add_filter('woocommerce_checkout_fields','customize_checkout_fields',10000, 1); 
函数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');
返回$ fields;
}

3)。使用 woocommerce_billing_fields woocommerce_shipping_fields 过滤器挂钩:

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

返回$ billing_fields;
}

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

return $ shipping_fields;
}

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

我希望其中之一能起作用。没有第三方插件,这些代码中的每一个都可以完美地工作。


I have updated the placeholders for basket fields via the WooCommerce settings, as follows:

However on the frontend, the previous placeholders remain:

I have also used the following code, adapted from another StackOverflow thread which aims to override the placeholder content, but the defaults still persist.

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;
}

Please advise on how I can achieve the desired placeholder text!

解决方案

In woocommerce default there is no settings like you describe. So you are using a third party plugin, to customize fields. So you need to try multiple ways with a higher hook priority.

So try those one by one:

1). Using woocommerce_default_address_fields filter hook (with a higher priority hook):

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). Using woocommerce_checkout_fields filter hook:

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). Using woocommerce_billing_fields and woocommerce_shipping_fields filters hooks:

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;
}

All code goes in function.php file of your active child theme (or active theme).

I hope that one of those will work. Without a third party plugin each of those codes works perfectly.

这篇关于在Woocommerce 3+中自定义一些结帐字段属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆