在 woocommerce 单页上添加到购物车按钮后添加内容
Adding content after add to cart button on woocommerce single page
我已经在带有
的单个产品页面的简短描述后成功添加了内容
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');
但是没有任何反应。只能hook到apply_filters
里面的hooks吗?到目前为止,根据我对钩子的理解,您只需要一个钩子名称即可挂钩,仅此而已。第一个是过滤器挂钩,所以我使用了 add_filter
,第二个是动作挂钩,所以我应该使用 add_action
,所有这些都应该有效。那为什么不呢?
这里,你需要回显内容,因为它是add_action钩子。
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>';
}
你需要做 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 then you need to use the woocommerce_loop_add_to_cart_link
过滤器修改添加到购物车按钮。
使用 'Action Hook' 从 php 中添加内容 (html) 会很容易。
if (!function_exists('my_content_second')) {
function my_content_second( $content ) {
?>
<div class="second_content">Other content here!</div>;
<?php
}
}
add_action('woocommerce_after_add_to_cart_button', 'my_content_second');
如果需要添加动态内容,只需使用变量回显该内容或使用某些条件添加。
过滤挂钩对修改现有内容很有用,需要return语句(修改后)
动作挂钩主要用于添加内容。
我已经在带有
的单个产品页面的简短描述后成功添加了内容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');
但是没有任何反应。只能hook到apply_filters
里面的hooks吗?到目前为止,根据我对钩子的理解,您只需要一个钩子名称即可挂钩,仅此而已。第一个是过滤器挂钩,所以我使用了 add_filter
,第二个是动作挂钩,所以我应该使用 add_action
,所有这些都应该有效。那为什么不呢?
这里,你需要回显内容,因为它是add_action钩子。
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>';
}
你需要做 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 then you need to use the woocommerce_loop_add_to_cart_link
过滤器修改添加到购物车按钮。
使用 'Action Hook' 从 php 中添加内容 (html) 会很容易。
if (!function_exists('my_content_second')) {
function my_content_second( $content ) {
?>
<div class="second_content">Other content here!</div>;
<?php
}
}
add_action('woocommerce_after_add_to_cart_button', 'my_content_second');
如果需要添加动态内容,只需使用变量回显该内容或使用某些条件添加。
过滤挂钩对修改现有内容很有用,需要return语句(修改后)
动作挂钩主要用于添加内容。