get_post_meta没有显示在woocommerce购物车页面上



我正在购物车页面上创建另一个产品列表,但我想知道为什么下面的代码没有显示woocommerce购物车页面上的自定义字段。我希望有人能帮助修复下面的代码,使其工作。

function display_fork_lift_msg_single_product() {
foreach ( WC()->cart->get_cart() as $cart_item ) {
$product = $cart_item['data'];         

if(!empty($product) && is_cart()){
$fork_lift = get_post_meta( $product->ID, '_shipping_notes', true );

echo $product->get_image() . '<br>' . $fork_lift;
}
}

}
add_action('woocommerce_before_cart_table', 'display_fork_lift_msg_single_product', 10);

非常感谢。

关于获取产品ID,您有一个错误,请使用get_id()返回ID。

function display_fork_lift_msg_single_product() {
// I moved this check here instead making it inside the foreach loop
if (is_cart()) {
foreach ( WC()->cart->get_cart() as $cart_item ) {
$product = $cart_item['data'];
if(!empty($product)){
$fork_lift = get_post_meta($product->get_id(), '_shipping_notes', true);
echo $product->get_image() . '<br>' . $fork_lift;
}
}
}
}
add_action('woocommerce_before_cart_table', 'display_fork_lift_msg_single_product', 10);

你现在应该很好了:)

最新更新