我使用此短代码显示产品[product_category category =“extras”orderby =“date”]。
可变产品显示“选择选项”,单个产品显示“添加到购物车”。我能够将两者的文字都改为“查看产品”。
现在的问题是我需要更改那些曾经说过“添加到购物车”的网址,因为它们没有链接到产品页面而是“添加到购物车”。
我知道我可以编辑woocommerce模板,但我需要将其作为函数添加到function.php
我不需要任何按钮,只需更换网址。
再次目的: 替换/重定向“添加到购物车”网址链接到产品页面(仅在循环中,显然不在产品页面中)。
有人可以帮忙吗?
答案 0 :(得分:4)
如果有人选择更改woocommerce文件(当然是儿童主题!)。
在档案中:/loop/add-to-cart.php
变化:
global $product;
echo apply_filters( 'woocommerce_loop_add_to_cart_link',
sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" data-quantity="%s" class="button %s product_type_%s">%s</a>',
esc_url( $product->add_to_cart_url() ),
esc_attr( $product->id ),
esc_attr( $product->get_sku() ),
esc_attr( isset( $quantity ) ? $quantity : 1 ),
$product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '',
esc_attr( $product->product_type ),
esc_html( $product->add_to_cart_text() )
),
$product );
要:
global $product;
if ( $product->product_type == "simple" ) {
$simpleURL = get_permalink();
$simpleLabel = "View Product"; // BUTTON LABEL HERE
} else {
$simpleURL = $product->add_to_cart_url();
$simpleLabel = $product->add_to_cart_text();
};
echo apply_filters( 'woocommerce_loop_add_to_cart_link',
sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" data-quantity="%s" class="button %s product_type_%s">%s</a>',
esc_url( $simpleURL ),
esc_attr( $product->id ),
esc_attr( $product->get_sku() ),
esc_attr( isset( $quantity ) ? $quantity : 1 ),
$product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '',
esc_attr( $product->product_type ),
esc_html( $simpleLabel )
),
$product );
答案 1 :(得分:1)
我相信你可以在WooCommerce设置中禁用AJAX add-to-cart功能。
如果由于某种原因这不令人满意,您可以查看loop/add-to-cart.php
模板。添加到购物车链接是可过滤的。如果您查看add-to-cart.js
,您可以看到针对add_to_cart button
类的任何链接触发了AJAX添加到购物车功能,而仅适用于{{1}的按钮class ... ie:仅用于简单的产品。根据您的样式,您可以从链接中删除产品类型类或product_type_simple
类。在下面的示例中,我删除了add_to_cart_button
类。
add_to_cart_button
答案 2 :(得分:1)
在你主题的funtions.php中添加以下代码:
/*STEP 1 - REMOVE ADD TO CART BUTTON ON PRODUCT ARCHIVE (SHOP) */
function remove_loop_button(){
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
}
add_action('init','remove_loop_button');
/*STEP 2 -ADD NEW BUTTON THAT LINKS TO PRODUCT PAGE FOR EACH PRODUCT */
add_action('woocommerce_after_shop_loop_item','replace_add_to_cart');
function replace_add_to_cart() {
global $product;
$link = $product->get_permalink();
echo '<p style="text-align:center;margin-top:10px;">';
$currentlang = get_bloginfo('language');
//for multilanguage
if($currentlang=="en-GB"){
echo do_shortcode('<a href="'.$link.'" class="button addtocartbutton">View Product</a>');
} elseif($currentlang=="fr-FR"){
echo do_shortcode('<a href="'.$link.'" class="button addtocartbutton">Voir le produit</a>');
}else {
echo do_shortcode('<a href="'.$link.'" class="button addtocartbutton">Ver Producto</a>');
}
echo '</p>';
}