5

我在向 WooCommerce 添加其他内容时遇到了一些困难,因为我还是新手。我正在尝试将“添加到购物车”按钮添加到相关产品和产品列表中。

正在运行代码并卡在下面。

<a href="<?php the_permalink(); ?>">

        <?php
            /**
             * woocommerce_before_shop_loop_item_title hook
             *
             * @hooked woocommerce_show_product_loop_sale_flash - 10
             * @hooked woocommerce_template_loop_product_thumbnail - 10
             */
            do_action( 'woocommerce_before_shop_loop_item_title' );
        ?>

        <h3><?php the_title(); ?></h3>

        <?php
            /**
             * woocommerce_after_shop_loop_item_title hook
             *
             * @hooked woocommerce_template_loop_price - 10
             */
            do_action( 'woocommerce_after_shop_loop_item_title' );
        ?>

    </a>

    <?php do_action( 'woocommerce_after_shop_loop_item' ); ?>  

希望有人可以指导我如何添加按钮。提前致谢。

4

5 回答 5

12

解释每个 do_action 都在 woocommerce-hooks.php 内部,并指向 woocommerce-template.php 内部的一个函数

创建缩略图:

Function Name: woocommerce_template_loop_product_thumbnail()

do_action( 'woocommerce_before_shop_loop_item_title' );

提供价格:

Function Name: woocommerce_template_loop_price()

do_action( 'woocommerce_after_shop_loop_item_title' );

添加到购物车按钮:

Function Name: woocommerce_template_loop_add_to_cart()

do_action( 'woocommerce_after_shop_loop_item' );
于 2013-02-25T08:13:10.597 回答
8

woocommerce_template_loop_add_to_cart在您的 wordpress 文件夹中递归搜索。

默认情况下,WooCommerce 将其挂接到woocommerce_after_shop_loop_itemwp-content\plugins\woocommerce\woocommerce-hooks.php

add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );

我安装的主题Mystile删除了 wp-content\themes\mystile\includes\theme-woocommerce.php 中的这个钩子

// Remove add to cart button on archives
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10);

一旦我将其注释掉,就会出现“添加到购物车”按钮。

于 2013-03-29T12:04:04.000 回答
4

要将“添加到购物车”按钮添加到产品列表页面,我个人复制了:

wp-content/plugins/woocommerce/templates/content-product.php

进入 :

wp-content/themes/myChildTemplate/woocommerce/content-product.php

然后我替换了:

        do_action( 'woocommerce_after_shop_loop_item_title' );
    ?>

</a>

经过:

        do_action( 'woocommerce_after_shop_loop_item_title' );
    ?>

</a>
    <?php do_action('woocommerce_simple_add_to_cart'); ?>
于 2014-06-21T19:36:40.593 回答
2

仅供遇到此问题的任何人,您也可以尝试使用此钩子使其正常工作...

// Add add to cart button on archive page products
add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_add_to_cart', 10 );
于 2014-08-21T10:44:18.690 回答
2

在 ElegantTheme wordpress 主题 (Divi) 上使用 WooCommerce,我将此行添加到 functions.php :

add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_add_to_cart', 10 );

它在标题和价格之后添加一个“添加到购物车”按钮(即每个产品一个“添加到购物车”按钮)

于 2015-01-18T19:13:27.987 回答