gpt4 book ai didi

php - WooCommerce 从订单项中获取产品变体属性名称和值

转载 作者:行者123 更新时间:2023-12-04 08:39:11 33 4
gpt4 key购买 nike

我正在为我的 WooCommerce 商店制作自定义感谢页面,我可以在其中正确显示购物车项目的属性和值,但在感谢页面中我未能显示您能帮我吗?
迷你购物车项目的工作代码:

$items = WC()->cart->get_cart();
foreach($items as $item => $values) {

$cart_item = WC()->cart->cart_contents[ $item ];
$variations = wc_get_formatted_cart_item_data( $cart_item );
if( $cart_item['data']->is_type( 'variation' ) ){
$attributes = $cart_item['data']->get_attributes();
$variation_names = array();
if( $attributes ){
foreach ( $attributes as $key => $value) {
$variation_key = end(explode('-', $key));
$variation_names[] = ucfirst($variation_key) .' : '. $value;
}
}
echo implode( '<br>', $variation_names );

}

}
和输出像
Color : Red
Size : 4mm
我喜欢在感谢页面中显示同样的内容所以我将它重新编码为订单格式并循环遍历它,但它不起作用
$items = $order->get_items();
foreach ($items as $item_key => $item) {
$product = $item->get_product();
if( $product->is_type( 'variation' )){
$attributes = $product->get_variation_attributes();
$variation_names = array();
if( $attributes ){
foreach ( $attributes as $key => $value) {
$variation_key = end(explode('_', $key));
$variation_names[] = ucfirst($variation_key) .' : '. $value;
}
}
echo implode( '<br>', $variation_names );
}
}

最佳答案

使用 $item->get_product()获取当前 WC_Product来自使用 get_attributes() 的订单项目的对象产品变体的方法,而不是 get_variation_attributes()仅用于父变量产品。

$order_items = $order->get_items();

foreach ($order_items as $item_key => $item) {
$product = $item->get_product(); // Get the WC_Product Object

if( $product->is_type( 'variation' ) ){
$attributes = $product->get_attributes();
$variation_names = array();

if( $attributes ){
foreach ( $attributes as $key => $value) {
$variation_key = end(explode('-', $key));
$variation_names[] = ucfirst($variation_key) .' : '. $value;
}
}
echo implode( '<br>', $variation_names );
}
}
它现在应该可以工作了。

关于php - WooCommerce 从订单项中获取产品变体属性名称和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64650411/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com