Woocommerce Checkout:在国家下拉列表中添加占位符[重复]
Posted
技术标签:
【中文标题】Woocommerce Checkout:在国家下拉列表中添加占位符[重复]【英文标题】:Woocommerce Checkout: Add placeholder in country dropdown [duplicate] 【发布时间】:2020-05-28 18:20:33 【问题描述】:在我的 Woocommerce-Shop 结帐中,有一个下拉菜单可以选择您所在的国家/地区。 默认情况下,美国已自动选择。 如何只使用“选择您的国家/地区”的占位符?
我找不到该主题的任何解决方案,有人知道吗?
我更改了其他占位符,它们不是下拉菜单,但在同一个表单中:
add_filter( 'woocommerce_checkout_fields' , 'override_billing_checkout_fields', 20, 1 );
function override_billing_checkout_fields( $fields )
$fields['billing']['billing_first_name']['placeholder'] = 'First Name*';
$fields['billing']['billing_last_name']['placeholder'] = 'Last Name*';
$fields['billing']['billing_city']['placeholder'] = 'Town / City*';
$fields['billing']['billing_postcode']['placeholder'] = 'ZIP*';
$fields['billing']['billing_email']['placeholder'] = 'Email Address*';
return $fields;
我现在糟糕的解决方案是:我创建了一个新的“下拉列表中的国家/地区”,我刚刚命名:选择您的国家*,然后默认选择它而不是美国。但问题在于系统认为已经选择了一个真实的国家,因此它不再是必填字段,而且用户在选择国家时看起来并不常见:
function woo_add_my_country( $country )
$country["PLACE"] = 'select your country*';
return $country;
add_filter( 'woocommerce_countries', 'woo_add_my_country', 10, 1 );
add_filter( 'default_checkout_billing_country', 'bbloomer_change_default_checkout_country' );
function bbloomer_change_default_checkout_country()
return 'PLACE';
如果有任何帮助或提示,我将不胜感激!
【问题讨论】:
【参考方案1】:这对我有用,试试这个
// Change the default country and state on checkout page.
// This works for a new session.
add_filter( 'default_checkout_country', 'xa_set_default_checkout_country' );
add_filter( 'default_checkout_state', 'xa_set_default_checkout_state' );
function xa_set_default_checkout_country()
// Returns empty country by default.
return null;
// Returns India as default country.
// return 'IN';
function xa_set_default_checkout_state()
// Returns empty state by default.
return null;
// Returns Madhya Pradesh as default state.
// return 'MP';
function woo_add_my_country( $country )
$country["PLACE"] = 'select your country*';
return $country;
add_filter( 'woocommerce_countries', 'woo_add_my_country', 10, 1 );
add_filter( 'default_checkout_billing_country', 'bbloomer_change_default_checkout_country' );
function bbloomer_change_default_checkout_country()
return 'PLACE';
【讨论】:
嘿,谢谢你这已经解决了一个问题,它现在是一个必填字段。但是“选择你的国家*”仍然不是一个占位符,它在点击下拉菜单后就消失了。【参考方案2】:只需转到WooCommerce > Settings
。
在常规选项卡上,您会找到 默认客户位置。设置为No location by default
【讨论】:
感谢您的提示,但在我的情况下,这不会在下拉列表中添加占位符文本。 @mauricem 是的,它不会.. 您应该使用与使用woocommerce_checkout_fields
过滤器对其他字段所做的相同操作
这个解决方案的问题是其他功能也是基于用户的地理位置。税收、货币等。您还知道如何在不更改默认客户位置的情况下设置占位符?【参考方案3】:
这是我在搜索如何为 Woocommerce 结帐页面上的选择字段设置占位符时弹出的首批结果之一,因此对于任何未来的访问者:
我有一个公司选择字段,我用数据库中的值动态填充该字段。为了设置占位符值,我只需添加一个带有空白值的选项。
add_filter( 'woocommerce_checkout_fields' , 'populate_company_field' );
function populate_company_field($fields)
$results = get_results_from_database();
$options[''] = __('Choose your company', 'gs'); //add blank value = placeholder
foreach ($results as $result)
if (!empty($result->company))
$options[$result->ID] = $result->company;
$fields['billing']['company']['options'] = $options;
return $fields;
【讨论】:
以上是关于Woocommerce Checkout:在国家下拉列表中添加占位符[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Woocommerce WC_Cart->fees 和 WC_Cart::get_checkout_url 已弃用
在 WooCommerce Checkout 自定义文本字段中启用 Datepicker
支付网关未触发 woocommerce_payment_complete 和 woocommerce_after_checkout_validation 挂钩