我正在尝试在woocommerce结帐页面中预先填充其他字段,但我正在努力。
add_filter('woocommerce_checkout_get_value', function($input, $key ) {
global $current_user;
switch ($key) :
case 'billing_first_name':
case 'shipping_first_name':
return $current_user->first_name;
break;
case 'billing_last_name':
case 'shipping_last_name':
return $current_user->last_name;
case 'billing_phone':
return $current_user->phone;
break;
case 'billing_company':
case 'shipping_company':
return $current_user->company;
break;
case 'billing_vat':
return $current_user->vat;
break;
endswitch;
}, 10, 2);
除$current_user->phone,$current_user->company,$current_user->vat外,它都可以工作
请帮忙吗?
电话、公司和其他信息都在元数据中。
$phone = get_user_meta($current_user,'phone_number',true);
您也不需要有全局变量。这也是危险的。
add_filter('woocommerce_checkout_get_value', function($input, $key )
{
$current_user = get_current_user_id();
switch ($key) :
case 'billing_first_name':
case 'shipping_first_name':
return $current_user->first_name;
break;
case 'billing_last_name':
case 'shipping_last_name':
return $current_user->last_name;
case 'billing_phone':
$phone = get_user_meta($current_user,'phone_number',true);
return $phone;
break;
case 'billing_company':
case 'shipping_company':
// May or may not be in meta data
break;
case 'billing_vat':
// Not available through user
break;
endswitch;
}, 10, 2);
您可以在此处查看更多信息:https://codex.wordpress.org/Function_Reference/get_user_meta
增值税有点复杂,因为它基于国家而不是用户名。当国家在那里时,增值税不会。 检索它的最佳方法是通过woocommerce。
至于公司名称(有时称为组织(,那也不是直接的Wordpress。它通常是通过第三方插件添加的,例如woocommerce,会员资格或将功能添加到帐户的自定义插件。 你必须看看你在用什么。
就这样用
全局$current_用户;
案例"billing_phone": 返回$current_用户->billing_phone; 破;