add_filter( 'woocommerce_add_to_cart_redirect', 'rv_redirect_to_url' );
function rv_redirect_to_url() {
global $woocommerce, $post;
$product_id = apply_filters( 'woocommerce_add_to_cart_product_id', absint( $_REQUEST['add-to-cart'] ) );
$rv_woo_redirect_url = get_post_meta( $product_id, '_rv_woo_product_custom_redirect_url', true );
if ( ! empty( $rv_woo_redirect_url ) ) {
wp_redirect( esc_url( $rv_woo_redirect_url ) ); exit;
}
}
如何更改代码以使其只适用于已定义的产品类别?
更新(当它是已定义的产品类别时,为正确的自定义url)
使用woocommerce_add_to_cart_redirection
筛选器挂钩中挂钩的自定义函数,该函数将在产品添加到购物车时重定向客户(对于已定义的产品类别):
add_filter( 'woocommerce_add_to_cart_redirect', 'conditional_add_to_cart_redirection', 99, 1 );
function conditional_add_to_cart_redirection( $url ) {
// ==> HERE define your product category or categories in the array
$category = array( 'clothing', 'music' );
if ( ! isset( $_REQUEST['add-to-cart'] ) ) return $url; // Very important!
// When it's available (on add to cart click), get the product ID
$product_id = absint( $_REQUEST['add-to-cart'] );
// Get the custom url from product post meta data
$custom_url = get_post_meta( $product_id, '_rv_woo_product_custom_redirect_url', true );
// Exit to normal, If the custom URL redirection is not set in the product
if( empty( $custom_url ) ) return $url;
// Custom redirection only for your defined product category(ies)
if( has_term( $category, 'product_cat', $product_id ) ){
// Clear add to cart notice (with the cart link).
wc_clear_notices();
$url = $custom_url; // Updated here
}
return $url;
}
代码存在于活动子主题(或主题)的function.php文件中,也存在于任何插件文件中。
// Conditionally changing add to cart button link and text on shop and archives
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( 'variable-subscription' ) || $product->is_type( 'variable' ) ) return $button;
// ==> HERE define your product category or categories in the array
$category = array( 'clothing', 'music' );
// Check that the custom url from product post meta data is not empty
$custom_url = get_post_meta( $post->ID, '_rv_woo_product_custom_redirect_url', true );
if( empty( $custom_url ) ) return $button;
// Check if the current product has a defined product category(ies)
if( ! has_term( $category, 'product_cat', $post->ID ) ) return $button;
$button_text = __( 'View product', 'woocommerce' );
$button = '<a class="button" href="' . $product->get_permalink() . '">' . $button_text . '</a>';
return $button;
}
我试图在产品页面的Woocommerce中添加“立即购买”按钮,因此有两个按钮: 添加到购物车 立即购买(将产品添加到购物车并重定向到结账) 我仍然希望添加到购物车,使其正常工作。 我怎样才能做到这一点?非常感谢。 http://wordpress.org/extend/plugins/woocommerce/
我对Woocommerce中单一产品页面上的add to cart按钮有问题。由于某种原因,它只会在用户登录时将产品添加到购物车中。我添加了一个基于URL的add to cart按钮,标记为“No Ajax”,该按钮可以工作,但我无法将数量选择器链接到No Ajax add to cart按钮。archive页面上的add to cart按钮可以正常工作。 下面是带有产品示例的站点:https:/
我是新WordPress和WooCommerce。如果产品重量大于8克,我必须隐藏添加到购物车按钮。我用这个代码做到了这一点。 它在商店页面上工作得很好。但它在单一产品页面上不起作用。请帮助我隐藏添加到购物车按钮在单一产品页面只有当产品的重量大于8克。
问题内容: 单击后,我想重新标记“ 添加到购物车” 按钮,然后将一项添加到购物车, 再添加到购物车中 。 这可能吗? 我有第二个 转到购物车* 按钮的Child-Theme function.php ,并且它正在工作。 * 但是我不知道在将一件商品添加到购物车后如何解决此重新标签问题(商店仅出售一件尺寸不同的商品)。我希望我很清楚。 这是我的代码: 问题答案: 更新: 在下面,您将找到使此重新标记