获取当前会话中所有购物车的商品名称

时间:2020-04-02 15:06:11

标签: woocommerce

我正在创建一个代码,它将帮助我将购物车中的当前商品发送给客户的电子邮件地址。虽然我从以前的问题中得到帮助,但我失败了。

这就是我想要的代码。

获取未登录用户的购物车商品的名称。 将这些名称发送到客户的电子邮件地址。 但是,当我发送商品名称时,购物车中只有一个商品名称发送到用户的电子邮件地址。

这是我的代码。

    // 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);
        }

我很困惑为什么这段代码只在电子邮件中发送一个商品名称。

可能是我做错了。您能在这方面帮助我吗?

我们将非常感谢您的帮助。

0 个答案:

没有答案