在Woocommerce thankyou页面中获取阵列中的产品名称

时间:2018-03-14 08:57:46

标签: php wordpress woocommerce

我正在尝试将订购的商品放在数组中,以便在woocommerce感谢您的页面中进一步传递值。我目前正在获取所有订单项名称,sku等,没有逗号或任何内容。

foreach ($order->get_items() as $item_id => $item_data) {

    // Get an instance of corresponding the WC_Product object
    $product = $item_data->get_product();
    $product_name = $product->get_name(); // Get the product name

    $item_quantity = $item_data->get_quantity(); // Get the item quantity

    $sku = $product->get_sku();
    $item_total = $item_data->get_total(); // Get the item line total

    // Displaying this data (to check)
    echo 'NAME: '.$product_name.' | Quantity: '.$item_quantity.' | Item total: '. number_format( $item_total, 2 );

}

当前结果

enter image description here

1 个答案:

答案 0 :(得分:0)

这可以通过以下方式轻松完成:

add_action( 'woocommerce_thankyou', 'thankyou_custom_items_data', 20, 1 );
function thankyou_custom_items_data( $order_id ) {
    // Get an instance of the the WC_Order Object
    $order = wc_get_order( $order_id );

    $items_data = array();

    foreach ($order->get_items() as $item_id => $item ) {

        // Get an instance of corresponding the WC_Product object
        $product = $item->get_product();

        $items_data[$item_id] = array(
            'name'       => $product->get_name(),
            'sku'        => $product->get_sku(),
            'quantity'   => $item->get_quantity(),
            'item_total' => number_format( $item->get_total(), 2 )
        );
    }
    // Testing array raw output
    echo '<pre>'; print_r( $items_data ); echo '</pre>';
}

代码进入活动子主题(或活动主题)的function.php文件。经过测试并正常工作。

您将获得如下原始输出:

Array (
    [776] => Array (
        [name] => Happy Ninja
        [sku] => HN2563
        [quantity] => 1
        [item_total] => 36.36
    )
    [777] => Array (
        [name] => Patient Ninja
        [sku] => PN2559
        [quantity] => 1
        [item_total] => 29.17
    )
)

相关:Get Order items and WC_Order_Item_Product in Woocommerce 3