当WooCommerce checkout 页面加载时,一些字段(如First_Name、Last_Name、State)被预先填充.

但其他字段(电话、城市、邮政编码)为空.

所有签出字段的数据都在用户元数据中可用.

如何使用用户元数据填充检出字段? 我try 了一些类似的代码,将其添加到我的函数.php文件中.

有什么建议吗? 向您致敬,

add_filter( 'woocommerce_checkout_fields', 'itdoc_remove_fields', 9999 );


function itdoc_remove_fields( $woo_checkout_fields_array ) {
    
    $user = wp_get_current_user();
    $dealer_phone= get_user_meta($user->ID, 'phone' , true);
    $dealer_city= get_user_meta($user->ID, 'dealer_city' , true);
    $dealer_state= get_user_meta($user->ID, 'postcode' , true);
    print($dealer_phone);

    $woo_checkout_fields_array['billing']['billing_phone']['default'] = $dealer_phone ;
    $woo_checkout_fields_array['billing']['billing_city']['default'] = $dealer_city;
    $woo_checkout_fields_array['billing']['billing_postcode']['default'] = $dealer_postcode;
    var_dump($woo_checkout_fields_array);


    return $woo_checkout_fields_array;
}

//这对签出字段没有任何影响

推荐答案

您没有使用右挂钩,请try 执行以下操作:

add_filter( 'woocommerce_checkout_get_value', 'autofill_some_checkout_fields', 10, 2 );
function autofill_some_checkout_fields( $value, $input ) {
    $user = wp_get_current_user();
    
    if( $input === 'billing_phone' && empty($value) && isset($user->phone) ) {
        $value = $user->phone;
    }
    
    if( $input === 'billing_city' && empty($value) && isset($user->dealer_city) ) {
        $value = $user->dealer_city;
    }
    
    if( $input === 'billing_postcode' && empty($value) && isset($user->postcode)  ) {
        $value = $user->postcode;
    }
    return $value;
}

应该能行得通.

Php相关问答推荐

在AJX请求中使用简写后,FormData出现非法调用错误

允许Laravel路由指定`withTrashed`,尽管有显式的模型绑定

Laravel数据表在一个视图中传递两个实例

在WooCommerce中禁用特定日期之前的免费送货

将部分产品排除在WooCommerce的计算附加费之外

当主页和帖子的缩略图相同时,如何减少主页和帖子的缩略图

从AJAX响应中获取一个未定义的html

莫德克斯.当我try 使用pThumb为手机压缩图像时,没有任何react

设置WordPress最近的帖子小部件按修改日期排序

Regex:高级删除单行PHP注释

调用模型[App\Models\Employee]上未定义的关系[title]

将可编辑的计费自定义字段添加到 WooCommerce 管理单个订单

Docker-用于部署的 PHP 应用程序映像无法在本地运行

将产品数量、名称和结帐链接添加到 WooCommerce 添加到购物车消息

避免在 WooCommerce 中多次触发挂钩函数

CodeIgniter 4中嵌套过滤器组不起作用

按前 3 列对二维数组中的行数据进行分组,然后用逗号连接每组中的其余列

如何在供应商名称后将自定义徽章添加到商品详情

为什么 AJAX 请求没有通过 is_ajax_request() codeigniter 的条件?

如何从 PHP 中的字符串位置排除图像扩展名