Jquery 每次客户更改地址时发送电子邮件

Jquery 每次客户更改地址时发送电子邮件,jquery,html,css,woocommerce,Jquery,Html,Css,Woocommerce,我现在的代码是 // Send notification email when customer changes address. add_action( 'woocommerce_customer_save_address','notify_admin_customer_address_change', 10, 2); function notify_admin_customer_address_change( $user_id ) { // Set the $from_name,

我现在的代码是

// Send notification email when customer changes address.
add_action( 'woocommerce_customer_save_address','notify_admin_customer_address_change', 10, 2);
function notify_admin_customer_address_change( $user_id ) {

    // Set the $from_name, $from_email, and $to for your site.
    $from_name = 'Your From Name';
    $from_email = 'email@yourdomain.com';
    $to = 'email@somedomain.com';

    global $woocommerce, $current_user;

    // format email
    $message = 'Username: ' . $current_user->user_login . "\n";
    $message .= 'User Email: ' . $current_user->user_email . "\n";
    $message .= 'User First Name: ' . $current_user->user_firstname . "\n";
    $message .= 'User Last Name: ' . $current_user->user_lastname . "\n";
    $message .= "\n";
    $message .= "\n";
    $message .= "Billing Address:\n";

    // get the data from the profile after it's set by the customer save
    $woocommerce->customer->set_default_data();
    $message .= $woocommerce->customer->get_address() . "\n";
    $address_2 = $woocommerce->customer->get_address_2();
    if ($address_2 != '') {
        $message.= $address_2 . "\n";
    }
    $message .= $woocommerce->customer->get_city() . " ";
    $message .= $woocommerce->customer->get_state() . " ";
    $message .= $woocommerce->customer->get_postcode() . "\n";
    $message .= $woocommerce->customer->get_country() . "\n\n";
    $message .= "Shipping Address:\n";
    $message .= $woocommerce->customer->get_shipping_address() . "\n";
    $shipping_address_2 = $woocommerce->customer->get_shipping_address_2();
    if ($shipping_address_2 != '') {
        $message .= $shipping_address_2 . "\n";
    }
    $message .= $woocommerce->customer->get_shipping_city() . " ";
    $message .= $woocommerce->customer->get_shipping_state() . " ";
    $message .= $woocommerce->customer->get_shipping_postcode() . "\n";
    $message .= $woocommerce->customer->get_shipping_country();


    $headers = 'From: ' . $from_name . ' <' . $from_email . '>' . "\r\n";

    wp_mail($to, 'Customer Address Change Notice', $message, $headers);
}
//当客户更改地址时发送通知电子邮件。
添加操作('woocommerce\u customer\u save\u address','notify\u admin\u customer\u address\u change',10,2);
函数通知\管理员\客户\地址\更改($user\u id){
//为您的站点设置$from_name、$from_email和$to。
$from_name='Your from name';
$from_电子邮件地址:email@yourdomain.com';
$to$email@somedomain.com';
全球$woocmerce,$current_用户;
//格式化电子邮件
$message='Username:'。$current\u user->user\u login。“\n”;
$message.=“用户电子邮件:”。$current\u User->User\u Email。“\n”;
$message.=“用户名:”。$current\u User->User\u firstname。“\n”;
$message.=“用户姓氏:”。$current\u User->User\u lastname。“\n”;
$message.=“\n”;
$message.=“\n”;
$message.=“账单地址:\n”;
//由客户保存设置后,从配置文件中获取数据
$woocommerce->customer->set_default_data();
$message.=$woocommerce->customer->get_address()。“\n”;
$address_2=$woocommerce->customer->get_address_2();
如果($address_2!=''){
$message.=$address\u 2.“\n”;
}
$message.=$woocommerce->customer->get_city();
$message.=$woocommerce->customer->get_state();
$message.=$woocommerce->customer->get_postcode()。“\n”;
$message.=$woocommerce->customer->get_country()。“\n\n”;
$message.=“发货地址:\n”;
$message.=$woocommerce->customer->get_shipping_address()。“\n”;
$shipping_address_2=$woocommerce->customer->get_shipping_address_2();
如果($shipping\u address\u 2!=''){
$message.=$shipping\u address\u 2.“\n”;
}
$message.=$woocommerce->customer->get_shipping_city();
$message.=$woocommerce->customer->get_shipping_state();
$message.=$woocommerce->customer->get\u shipping\u postcode()。“\n”;
$message.=$woocommerce->customer->get_shipping_country();
$headers='From:'.$From_name.'.'。“\r\n”;
wp_邮件($to,‘客户地址变更通知’,$message,$headers);
}

代码的问题是,我收到通知,但地址不是他们的新地址,电子邮件中的地址是旧地址。也就是说,它在后面。

您正在从会话获取地址,而该地址仍在保存过程中。您可以尝试另一个钩子:

do_action( 'woocommerce_after_save_address_validation', $user_id, $load_address, $address, $customer );
因此,您可以尝试这样使用它:

add_action( 'woocommerce_after_save_address_validation', 'send_address_notification', 30, 4);

function send_address_notification($user_id, $load_address, $address, $customer){

//... Use $address & $customer to build your message. ...

}

嘿,谢谢你的回复,我是新来的编码,我复制了这个它仍然不工作。你能在我的原始代码中输入你的代码吗,这样我就可以替换所有的东西了,谢谢