eMi*_*sen 3 php wordpress field checkout woocommerce
我正在尝试将一个占位符添加到我的WooCommerce结帐字段中,除了电话和电子邮件字段之外,它还可以完美地用于每个字段.
这是我正在使用的代码:
add_filter('woocommerce_default_address_fields', 'override_address_fields');
function override_address_fields( $address_fields ) {
$address_fields['first_name']['placeholder'] = 'Fornavn';
$address_fields['last_name']['placeholder'] = 'Efternavn';
$address_fields['address_1']['placeholder'] = 'Adresse';
$address_fields['state']['placeholder'] = 'Stat';
$address_fields['postcode']['placeholder'] = 'Postnummer';
$address_fields['city']['placeholder'] = 'By';
$address_fields['phone']['placeholder'] = 'Telefon';
$address_fields['email']['placeholder'] = 'Email';
return $address_fields;
}
Run Code Online (Sandbox Code Playgroud)
我哪里错了?为什么电话和电子邮件没有发布任何结果?
我使用浏览器开发人员工具检查器从这两个字段中获取了ID.
编辑:
我也试过这个建议的代码:
add_filter('woocommerce_checkout_fields', 'override_checkout_fields');
function override_checkout_fields( $checkout_fields ) {
$checkout_fields['first_name']['placeholder'] = 'Fornavn';
$checkout_fields['last_name']['placeholder'] = 'Efternavn';
$checkout_fields['address_1']['placeholder'] = 'Adresse';
$checkout_fields['state']['placeholder'] = 'Stat';
$checkout_fields['postcode']['placeholder'] = 'Postnummer';
$checkout_fields['city']['placeholder'] = 'By';
$checkout_fields['phone']['placeholder'] = 'Telefon';
$checkout_fields['email']['placeholder'] = 'Email';
return $checkout_fields;
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
add_filter('woocommerce_checkout_fields', 'override_checkout_fields');
function override_checkout_fields( $checkout_fields ) {
$checkout_fields['billing_first_name']['placeholder'] = 'Fornavn';
$checkout_fields['billing_last_name']['placeholder'] = 'Efternavn';
$checkout_fields['billing_address_1']['placeholder'] = 'Adresse';
$checkout_fields['billing_state']['placeholder'] = 'Stat';
$checkout_fields['billing_postcode']['placeholder'] = 'Postnummer';
$checkout_fields['billing_city']['placeholder'] = 'By';
$checkout_fields['billing_phone']['placeholder'] = 'Telefon';
$checkout_fields['billing_email']['placeholder'] = 'Email';
return $checkout_fields;
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
查看官方文档,您将看到使用过滤器挂钩时默认地址没有 'phone'和'email'关键字段woocommerce_default_address_fields.
接受域密钥是:
country,first_name,last_name,company,address_1,address_2,city,state,postcode.
这就是您可以使用更改的原因 woocommerce_default_address_fields
电子邮件和电话是计费字段,它们可通过woocommerce_checkout_fields过滤器挂钩获得.它们被命名(参见文档)'billing_phone'和'billing_phone'......
覆盖它们的正确方法是:
add_filter( 'woocommerce_checkout_fields' , 'override_billing_checkout_fields', 20, 1 );
function override_billing_checkout_fields( $fields ) {
$fields['billing']['billing_phone']['placeholder'] = 'Telefon';
$fields['billing']['billing_email']['placeholder'] = 'Email';
return $fields;
}
Run Code Online (Sandbox Code Playgroud)
而对于其他领域(计费和运输):
add_filter('woocommerce_default_address_fields', 'override_default_address_checkout_fields', 20, 1);
function override_default_address_checkout_fields( $address_fields ) {
$address_fields['first_name']['placeholder'] = 'Fornavn';
$address_fields['last_name']['placeholder'] = 'Efternavn';
$address_fields['address_1']['placeholder'] = 'Adresse';
$address_fields['state']['placeholder'] = 'Stat';
$address_fields['postcode']['placeholder'] = 'Postnummer';
$address_fields['city']['placeholder'] = 'By';
return $address_fields;
}
Run Code Online (Sandbox Code Playgroud)
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中.
所有代码都在Woocommerce 3+上进行测试并且有效.
| 归档时间: |
|
| 查看次数: |
6982 次 |
| 最近记录: |