【问题标题】:Woocommerce Checkout: Add placeholder in country dropdown [duplicate]Woocommerce Checkout:在国家下拉列表中添加占位符[重复]
【发布时间】: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'; 
}

如果有任何帮助或提示,我将不胜感激!

【问题讨论】:

    标签: wordpress woocommerce dropdown checkout placeholder


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 2019-05-26
      • 2017-03-06
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 2016-01-22
      • 2019-02-16
      相关资源
      最近更新 更多