我正在创建一个代码,它将帮助我将购物车中的当前商品发送给客户的电子邮件地址。虽然我从以前的问题中得到帮助,但我失败了。
这就是我想要的代码。
获取未登录用户的购物车商品的名称。 将这些名称发送到客户的电子邮件地址。 但是,当我发送商品名称时,购物车中只有一个商品名称发送到用户的电子邮件地址。
这是我的代码。
// Change cart item name and price
add_action( 'woocommerce_before_calculate_totals', 'change_cart_item_name_and_price', 10, 1 );
function change_cart_item_name_and_price( $cart ) {
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
// Get new items names from WC_Session
$session_data = (array) WC()->session->get( 'new_item_names' );
// Loop through cart items
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
$item_names = $cart_item['data']->get_name();
// If item name doesn't exist in WC_Session for this cart item, we do it
if( ! isset($session_data[$cart_item_key]) ) {
$session_data[$cart_item_key] = $item_names;
WC()->session->set( 'new_item_names', $session_data );
}
}
}
然后在这里处理我的表格。
if (isset($_POST['enquiry-cart']) && wp_verify_nonce( $_POST['enquiry_cart'], 'enquiry-cart' )) {
$session_data = (array) WC()->session->get( 'new_item_names' );
foreach (WC()->session->get('cart') as $key => $value) {
$data = $session_data[$key];
}
$contactName = htmlentities(stripslashes(trim($_POST['contactName'])));
$contactEmail = htmlentities(stripslashes(trim($_POST['contactEmail'])));
$contactMessage = htmlentities(stripslashes(trim($_POST['contactMessage'])));
$emailTo = 'dindarraashid@gmail.com';
$subject = 'Enquiry From: '.$contactName;
$body = "Name: $contactName \n\n Email: $contactEmail \n\n \n\n Message: $contactMessage $data";
$headers = 'From: '.$contactName.' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $emailTo;
wp_mail([$emailTo, $contactEmail], $subject, $body, $headers);
}
我很困惑为什么这段代码只在电子邮件中发送一个商品名称。
可能是我做错了。您能在这方面帮助我吗?
我们将非常感谢您的帮助。