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 挂钩

apache_conf WooCommerce 2.1在Checkout添加确认密码字段

WooCommerce:结账时预先选择并限制在一个州和城市

WooCommerce Checkout 中的自定义总储蓄金额显示问题