gpt4 book ai didi

php - 在 Woocommerce 电子邮件页脚模板中获取客户 user_id

转载 作者:行者123 更新时间:2023-12-01 11:18:25 24 4
gpt4 key购买 nike

我试图在 woocommerce 自定义电子邮件模板中获取 current_user_id 但它返回 0。有谁知道如何在 wordpress 的电子邮件模板中获取 user_id。当我在任何 php 模板中使用此代码时,我都会获得用户 ID。

下面是我的代码:

<?php global $current_user;
get_currentuserinfo();
echo '<h4>Your code:</h3>' . $current_user->ID . '';
?>

完整模板代码链接如下: email-template-code

最佳答案

You can't get the current user in woocommerce email templates, but you can get the customer user ID from the Order.

要获取客户的User ID,可以在$GLOBAL变量中设置和获取一些数据:

  • 设置数据 - 在您的事件主题 function.php 文件中:
add_action( 'woocommerce_email_header', 'wc_email_user_id', 10, 2 );
function wc_email_user_id( $email_heading, $email ) {
// Set global variable data: user ID and Order ID
$GLOBALS['emails_custom_data'] = array(
'user_id' => get_post_meta( $email->object->ID, '_customer_user', true ), // Set the user ID
'order_id' => $email->object->ID, // Set the Order ID
);
}
  • 获取数据 - 在您的模板文件之后:
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}

## --- Your custom Code start here --- ##

$refNameGlobalsVar = $GLOBALS; // Get the data
$custom_data = $refNameGlobalsVar['emails_custom_data']; // Set the data in a variable

$user_id = $custom_data['user_id']; // Get the user ID
$order_id = $custom_data['order_id']; // Get the order ID (in case of…)

// Testing output
echo '<p>The user ID is '.$user_id.' | From the Order ID: '.$order_id.'</p>';

## --- End of custom code --- ##

?>

此代码已经过测试并且可以工作

关于php - 在 Woocommerce 电子邮件页脚模板中获取客户 user_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47301815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com