2

我正在使用以下代码来更新购物车页面,其中包含用于预订产品的人员数量:

// Add "Persons" to replace cart quantity for bookable products
add_filter( 'woocommerce_cart_item_quantity', 'replace_cart_quantity_for_bookings', 20, 3 );
function replace_cart_quantity_for_bookings( $product_quantity, $cart_item_key, $cart_item ){
    // Check that is a bookable product
    if( isset($cart_item['booking']) ){
        $product_quantity  = '<span style="text-align: center; display:inline-block;">'.$cart_item['booking']['Persons'].'<br>
        <small>(' . __('persons','woocommerce') . ')</small><span>';
    }
    return $product_quantity;
}

但是此代码不起作用并显示该错误:

注意:未定义的索引:Persons in/home/www/wp-content/themes/my-child-theme/functions.php

一些帮助将不胜感激。

4

1 回答 1

2

获取可预订产品的购物车物品人数的正确方法是使用:

$cart_item['booking']['_qty']

所以在你的代码中:

add_filter( 'woocommerce_cart_item_quantity', 'replace_cart_quantity_for_bookings', 20, 3 );
function replace_cart_quantity_for_bookings( $quantity, $cart_item_key, $cart_item ){
    // Only for bookable product items
    if( isset($cart_item['booking']) && isset($cart_item['booking']['_qty']) ){
        $quantity  = '<span style="text-align:center; display:inline-block; line-height:10px">'.$cart_item['booking']['_qty'].'<br>
        <small>(' . __('persons','woocommerce') . ')</small><span>';
    }

    return $quantity;
}

代码在您的活动子主题(或活动主题)的functions.php 文件中。测试和工作。


现在按人员类型获取可预订产品的购物车项目数是(给出一个数组):

$cart_item['booking']['_persons']

在以下情况下,这将为 2 种不同的人类型提供一个数组:

Array (
        [872] => 2
        [873] => 2
    )
于 2020-05-06T11:57:45.473 回答