将添加到购物车按钮替换为链接到 WooCommerce 3 中商店页面上的产品页面的更多内容
Posted
技术标签:
【中文标题】将添加到购物车按钮替换为链接到 WooCommerce 3 中商店页面上的产品页面的更多内容【英文标题】:Replace add to cart button with a read more linked to product page on shop pages in WooCommerce 3 【发布时间】:2018-02-17 01:39:13 【问题描述】:我正在使用 woocommerce,但遇到以下问题:
产品在主页上显示价格和添加到购物车按钮。 添加到购物车按钮重定向到购物车页面。 每个产品的图像重定向到产品页面。重要的是让客户能够在将产品添加到购物车之前阅读产品描述。
有没有办法将添加到购物车按钮替换为阅读更多,以便从主页重定向到每个产品的添加到购物车按钮将出现的页面?
【问题讨论】:
【参考方案1】:将添加到购物车的按钮替换为 Shop 中的产品链接和 woocommerce 3+ 的存档页面:
add_filter( 'woocommerce_loop_add_to_cart_link', 'replacing_add_to_cart_button', 10, 2 );
function replacing_add_to_cart_button( $button, $product )
$button_text = __("View product", "woocommerce");
$button = '<a class="button" href="' . $product->get_permalink() . '">' . $button_text . '</a>';
return $button;
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件中。
此代码在 WooCommerce 3+ 上进行了测试并且可以正常工作。你可以自定义按钮的文本,你会得到类似的东西:
【讨论】:
是否可以使用此代码仅影响特定产品?谢谢。 @DiegoM。if ( in_array($product->get_id(), array(58,63,89,145,147,231) ) )
带有一系列产品 ID【参考方案2】:
将这些添加到主题文件夹中的functions.php文件中
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart');
【讨论】:
【参考方案3】:如果有帮助,我将这个解决方案仅应用于简单产品对我很有用,因为可变产品无论如何都不会在存档页面上“添加到购物车”。这样可以更清楚地表明产品有更多选择(如果它是可变的)。我还在下面的示例中将“选择选项”的文本更改为“更多选项”(因为即使在查看单个产品页面的 url 之后,在我的案例中并非所有产品都可以购买,这是该线程的另一个非主题想法) :
// changes the "select options" text. Forget who to give credit to for this.
add_filter( 'woocommerce_product_add_to_cart_text', function( $text )
global $product;
if ( $product->is_type( 'variable' ) )
$text = $product->is_purchasable() ? __( 'More Options', 'woocommerce' ) : __( 'Read more', 'woocommerce' );
return $text;
, 10 );
/**
* remove add to cart buttons on shop archive page
*/
add_filter( 'woocommerce_loop_add_to_cart_link', 'replacing_add_to_cart_button', 10, 2 );
function replacing_add_to_cart_button( $button, $product )
if ( $product->is_type( 'simple' ) )
$button_text = __("View product", "woocommerce");
$button = '<a class="button" href="' . $product->get_permalink() . '">' .
$button_text . '</a>';
return $button;
【讨论】:
【参考方案4】:我遇到了同样的问题,我有一个捐赠产品,所以它有一个自定义价格,即您可以进行任意数量的捐赠,所以在商店页面中,我将该产品的添加到购物车按钮替换为“详细信息”,这将重定向它到产品单页,用户可以从中进行任何捐赠。我使用了这段代码。 代码位于您的主题或子主题的 functions.php 文件中
function filter_woocommerce_loop_add_to_cart_link( $quantity,$product )
$product_id = $product->get_id();
$title = $product->get_title();
$sku = $product->get_sku();
if($product_id == get_option( 'woocommerce_donations_product_id' ))
//var_dump($title);
//var_dump($sku);
//var_dump($quantity);
$simpleURL = get_permalink();
//var_dump($simpleURL);
$quantity='<a href="'.$simpleURL.'" data-quantity="1" class="product_type_simple ajax_add_to_cart" data-product_id="'.$product_id.'" data-product_sku="'.$sku.'" aria-label="Read more about “'.$title.'”" rel="nofollow"><span class="filter-popup">Détails</span></a>';
//var_dump($quantity);
return $quantity;
//exit();
;
// add the filter
add_filter( 'woocommerce_loop_add_to_cart_link','filter_woocommerce_loop_add_to_cart_link', 10, 2 );
【讨论】:
【参考方案5】:此代码正在运行。但是在这个地方为我的主题woocommerce/include/class-wc-product-simple.php
// changes the "select options" text. Forget who to give credit to for this.
add_filter( 'woocommerce_product_add_to_cart_text', function( $text )
global $product;
if ( $product->is_type( 'variable' ) )
$text = $product->is_purchasable() ? __( 'More Options', 'woocommerce' ) : __( 'Read more', 'woocommerce' );
return $text;
, 10 );
/**
* remove add to cart buttons on shop archive page
*/
add_filter( 'woocommerce_loop_add_to_cart_link', 'replacing_add_to_cart_button', 10, 2 );
function replacing_add_to_cart_button( $button, $product )
if ( $product->is_type( 'simple' ) )
$button_text = __("View product", "woocommerce");
$button = '<a class="button" href="' . $product->get_permalink() . '">' .
$button_text . '</a>';
return $button;
【讨论】:
以上是关于将添加到购物车按钮替换为链接到 WooCommerce 3 中商店页面上的产品页面的更多内容的主要内容,如果未能解决你的问题,请参考以下文章
替换产品类别的 Woocommerce 单一产品页面上的“添加到购物车”按钮
仅在 WooCommerce 单一产品页面上将添加到购物车文本更改为“应用”
仅在商店中用 woocommerce 中的贝宝结帐替换添加到购物车按钮
WooCommerce:为特定页面添加使用 WordPress 自定义字段添加到购物车旁边的自定义按钮