在woocommerce单页上添加到购物车按钮后添加内容

时间:2015-03-05 10:25:38

标签: php wordpress woocommerce hook

我已使用

在单个产品页面上的简短描述后成功添加了内容
if (!function_exists('my_content')) {
    function my_content( $content ) {
        $content .= '<div class="custom_content">Custom content!</div>';
        return $content;
    }
}

add_filter('woocommerce_short_description', 'my_content', 10, 2);

我在short-description.php中看到apply_filters( 'woocommerce_short_description', $post->post_excerpt )

所以我对此很感兴趣。

以同样的方式,我想在添加到购物车按钮后添加内容,因此我找到了do_action( 'woocommerce_before_add_to_cart_button' ),现在我正在挂钩woocommerce_before_add_to_cart_button。我正在使用

if (!function_exists('my_content_second')) {
    function my_content_second( $content ) {
        $content .= '<div class="second_content">Other content here!</div>';
        return $content;
    }
}

add_action('woocommerce_after_add_to_cart_button', 'my_content_second');

但没有任何反应。我可以只钩住apply_filters内的钩子吗?从我迄今为止通过使用钩子所理解的是,你只需要一个钩子名称来挂钩即可。第一个是过滤器钩子,所以我使用add_filter,第二个是动作钩子,所以我应该使用add_action,所有都应该工作。那么为什么不呢?

2 个答案:

答案 0 :(得分:13)

在这里,您需要回显内容,因为它是add_action hook。

add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart_button_func' );
/*
 * Content below "Add to cart" Button.
 */
function add_content_after_addtocart_button_func() {

        // Echo content.
        echo '<div class="second_content">Other content here!</div>';

}

答案 1 :(得分:0)

你需要做echo而不是return

add_action( 'woocommerce_after_add_to_cart_button', 'ybc_after_add_to_cart_btn' );
 
function ybc_after_add_to_cart_btn(){
    //add text OR HTML here 
    echo '<p>After custom text here</p>';
}

如果您想要同样的东西 on the shop archive page,那么您需要使用 woocommerce_loop_add_to_cart_link 过滤器来修改添加到购物车按钮。