在WooCommerce页面上获取购物车产品id,以显示产品图像


Get Cart products id on checkout WooCommerce page, to display product images

我在一个正在开发的网站上使用wooccommerce,我想在结账页面的顶部显示当前产品的缩略图,这样用户就可以看看他要买什么了。

但是我找不到任何方法。

我得到的最接近的方法是使用WC::cart->get_cart(),但这会输出所有产品的列表。

我怎样才能做到这一点?

感谢

是的,可以编写自定义函数。

要在结账页面的开头显示这些图像,请使用以下代码:

add_action('woocommerce_before_checkout_form', 'displays_cart_products_feature_image');
function displays_cart_products_feature_image() {
    foreach ( WC()->cart->get_cart() as $cart_item ) {
        $product = $cart_item['data'];
        if(!empty($product)){
            // $image = wp_get_attachment_image_src( get_post_thumbnail_id( $product->ID ), 'single-post-thumbnail' );
            echo $product->get_image();
            // to display only the first product image uncomment the line below
            // break;
        }
    }
}

此代码片段位于活动子主题或主题的function.php文件上

您可以在get_image((函数中添加一些选项来更改图像属性。

此代码经过测试且功能齐全


其他用途-您也可以使用它:

1( 。使用以下其他签出WooCommerce钩子(用其中一个替换代码片段中的第一行(

•客户详细信息之前:

add_action('woocommerce_checkout_before_customer_details', 'displays_cart_products_feature_image');

•售后客户详细信息:

add_action('woocommerce_checkout_after_customer_details', 'displays_cart_products_feature_image');

•订单审核前:

add_action('woocommerce_checkout_before_order_review', 'displays_cart_products_feature_image');

2( 。直接在您的wooccommerce模板中(此代码段位于活动子主题或主题的function.php文件中(:

function displays_cart_products_feature_image() {
    foreach ( WC()->cart->get_cart() as $cart_item ) {
        $product = $cart_item['data'];
        if(!empty($product)){
            // $image = wp_get_attachment_image_src( get_post_thumbnail_id( $product->ID ), 'single-post-thumbnail' );
            echo $product->get_image();
            // to display only the first product image uncomment the line below
            // break;
        }
    }
}

然后你只需将其中一个粘贴到模板文件中:

  • 内部HTML代码:<?php displays_cart_products_feature_image(); ?>
  • PHP代码内部:displays_cart_products_feature_image();

参考:

  • Class WC_Cart|WooCommerce 2.1.x代码参考
  • Class WC_Product|WooCommerce 3.x代码参考
  • 模板结构+通过主题覆盖模板