php - 自定义 Woocommerce 结帐字段在页面加载后恢复为默认值
问题描述
我已使用以下代码成功重命名了 woocommerce 结帐页面的“shipping_country”标签:
add_filter( 'woocommerce_checkout_fields', 'rename_woo_checkout_fields' );
function rename_woo_checkout_fields( $fields ) {
$fields['shipping']['shipping_country']['label'] = 'Country';
return $fields;
}
但是,当我尝试添加要更改的其他标签和占位符时,它不起作用。好吧,实际上发生了一些奇怪的事情。当我刷新页面以应用更改时,它似乎工作,但页面仍在加载,一秒钟后恢复到原来的状态。( shipping_country 字段仍然有效,但我在上面添加的所有其他字段都会发生。
我尝试更改顺序,但没关系。
我尝试更改但不起作用的字段是:
$fields['billing']['billing_address_1']['label'] = 'Address';
$fields['billing']['billing_address_1']['placeholder'] = 'Street and house number';
$fields['billing']['billing_city']['label'] = 'City';
$fields['billing']['billing_postcode']['label'] = 'Postcode';
$fields['shipping']['shipping_postcode']['label'] = 'Postcode';
$fields['shipping']['shipping_city']['label'] = 'City';
$fields['shipping']['shipping_city']['placeholder'] = 'City';
$fields['shipping']['shipping_address_1']['label'] = 'Address';
$fields['shipping']['shipping_address_1']['placeholder'] = 'Street and house number';
$fields['order']['order_comments']['placeholder'] = 'Special notes';
是什么让页面在完成加载页面之前还原了更改?
解决方案
请尝试以下操作:
// For billing and shipping fields
add_filter( 'woocommerce_default_address_fields', 'custom_default_address_fields' );
function custom_default_address_fields( $address_fields ) {
if ( is_checkout() ) {
$address_fields['address_1']['label'] = __('Address', 'woocommerce');
$address_fields['address_1']['placeholder'] = __('Street and house number', 'woocommerce');
$address_fields['country']['label'] = __('Country', 'woocommerce');
$address_fields['postcode']['label'] = __('Postcode', 'woocommerce');
$address_fields['city']['label'] = __('City', 'woocommerce');
$address_fields['city']['placeholder'] = __('City', 'woocommerce');
}
return $address_fields;
}
add_filter( 'woocommerce_checkout_fields', 'change_checkout_fields' );
function change_checkout_fields( $fields ) {
$fields['order']['order_comments']['placeholder'] = __('Special notes');
return $fields;
}
代码位于活动子主题(或活动主题)的 functions.php 文件中。在最后一个 WooCommerce 版本(5.0.0)上测试并运行。
推荐阅读
- windows-services - 如何在 NSIS 中将 SimpleSC 与依赖项一起使用
- python - 将数组的每个成员传递给函数的 Python 3 脚本
- python - 有没有办法根据与 Pandas 中另一列关联的值填充列?
- jquery - 如何从 jQuery 重定向到另一个视图
- java - 如何更改布尔值 java 函数中的一个函数值?
- r - 检测一行是否等于一并插入另一列的值
- xamarin - 如何为面向 UWP 的 Xamarin Switch 编写自定义渲染器
- asp.net - Webhook 验证
- sql - 在 CASE 子句中添加三重条件
- javascript - Tensorflow.js,基于图像文件夹的迁移学习重新训练