与访客用户登录的Woocommerce结帐字段

时间:2019-01-21 10:12:04

标签: wordpress woocommerce

我的functions.php文件中有一段代码来自定义结帐字段,如下所示。

add_filter(  'woocommerce_billing_fields', 'custom_billing_fields', 20, 1 );
function custom_billing_fields( $fields ) {

    ## ---- 1.  Sort billing email and phone fields ---- ##

    $fields['billing_address_2']['priority'] = 60;
    $fields['billing_address_1']['priority'] = 70;
    $fields['billing_suburb']['priority'] = 80;
    $fields['billing_city']['priority'] = 90;
    $fields['billing_postcode']['priority'] = 100;
    $fields['billing_state']['priority'] = 110;
    $fields['billing_country']['priority'] = 120;

    $fields['billing_email']['placeholder'] = 'e.g. name@domain.co.za';
    $fields['billing_first_name']['placeholder'] = 'e.g. John';
    $fields['billing_last_name']['placeholder'] = 'e.g. Smith';
    $fields['billing_address_google']['placeholder'] = 'Enter your billing address';
    $fields['billing_address_2']['placeholder'] = 'Apartment, suite, unit etc. (Optional)';
    $fields['billing_address_1']['placeholder'] = '';

您会注意到billing_address_1的占位符为空白,这就是我们想要的。

问题是,这仅在某人登录其帐户并使用结帐功能时有效。如果某人未登录并以访客身份退房,则占位符将显示“门牌号和街道名称”。我已经检查了代码,确实如此。 (附加屏幕截图)。

我找不到告诉它执行此操作的代码-或为什么我拥有的代码没有覆盖它。

有人知道为什么用户登录或未登录时为什么会有所不同,或者我如何使用此占位符找到代码?

网站为flowersforeveryone.co.za

谢谢!!

screenshot

1 个答案:

答案 0 :(得分:0)

您可以使用以下过滤器。

    add_filter( 'woocommerce_checkout_fields' , 'override_billing_checkout_fields', 20, 1 );
    function override_billing_checkout_fields( $fields ) {

        ## ---- 1.  Sort billing email and phone fields ---- ##

        $fields['billing']['billing_address_2']['priority'] = 60;
        $fields['billing']['billing_address_1']['priority'] = 70;
        $fields['billing']['billing_suburb']['priority'] = 80;
        $fields['billing']['billing_city']['priority'] = 90;
        $fields['billing']['billing_postcode']['priority'] = 100;
        $fields['billing']['billing_state']['priority'] = 110;
        $fields['billing']['billing_country']['priority'] = 120;

        $fields['billing']['billing_email']['placeholder'] = 'e.g. name@domain.co.za';
        $fields['billing']['billing_first_name']['placeholder'] = 'e.g. John';
        $fields['billing']['billing_last_name']['placeholder'] = 'e.g. Smith';
        $fields['billing']['billing_address_google']['placeholder'] = 'Enter your billing address';
        $fields['billing']['billing_address_2']['placeholder'] = 'Apartment, suite, unit etc. (Optional)';
        $fields['billing']['billing_address_1']['placeholder'] = '';

        return $fields;
    }