保持订单计费的名字和姓氏从Woocommerce中的用户数据自动更新



所以,我有一个脚本,它使用 WC API 在另一个应用程序中获取billing_last_name。我最近添加了一个插件,允许用户通过社交网络连接到网站。这将自动创建一个具有社交网络中的名字/姓氏的帐户。

下订单时,我希望隐藏billing_first_name和billing_last_name字段,但同时在之前创建的帐户(下订单的用户(的first_name和last_name下订单后自动完成。 我尝试了以下代码,但在整个网站上出现 500 错误:

add_action('woocommerce_checkout_order_processed', 'custom_process_order1', 10, 1);
function custom_process_order1($order_id) {
$current_user = wp_get_current_user();
$current_user_id = get_current_user_id();
update_user_meta($current_user->billing_first_name$current_user_id, "first_name");
update_user_meta($current_user->billing_last_name, $current_user_id, "last_name");
}

你的代码有错误和错误。请尝试以下操作:

add_action( 'woocommerce_checkout_create_order', 'update_order_first_and_last_names', 30, 2 );
function update_order_first_and_last_names( $order, $posted_data ) {
$user_id = $order->get_customer_id(); // Get user ID
if( empty($user_id) || $user_id == 0 )
return; // exit
$first_name = $order->get_billing_first_name(); // Get first name (checking)
if( empty($first_name) ){
$first_name = get_user_meta( $user_id, 'billing_first_name', true );
if( empty($first_name) )
$first_name = get_user_meta( $user_id, 'first_name', true );
$order->set_billing_first_name($first_name); // Save first name
}
$last_name  = $order->get_billing_last_name(); // Get last name (checking)
if( empty($last_name) ){
$last_name = get_user_meta( $user_id, 'billing_last_name', true );
if( empty($last_name) )
$last_name = get_user_meta( $user_id, 'last_name', true );
$order->set_billing_last_name($last_name); // Save last name
}
}

代码进入函数.php活动子主题(或活动主题(的文件。它应该有效。

相关内容

  • 没有找到相关文章

最新更新