php 防止Woocommerce重定向到产品页面添加到购物车

rxztt3cl  于 2023-04-19  发布在  PHP
关注(0)|答案(3)|浏览(180)

我有一个重定向的问题,这是我认为类似于WooCommerce添加到购物车后停止重定向,但也有点不同。我卖从数字专辑单曲。每个曲目都有自己的产品页面,但被发现,并应通过它所属的专辑页面购买。其产品ID链接到专辑页面上的“添加到购物车”按钮。当您将专辑页面上的单个曲目添加到购物车时,您将被重定向到单个曲目的页面,这不是计划.任何人都可以给予我一个解决方案,请允许客户留在相册页面?Woocommerce/产品/显示设置为没有重定向到购物车和 AJAX 是启用.我是一个新手,但可以做的东西,如果它'It’解释得很清楚,谢谢。

crcmnpdw

crcmnpdw1#

如果没有人访问这些跟踪文章类型,请继续将其设为私有。否则,除非您采取预防措施,否则它们将被索引,人们甚至可能会有机地找到它们。您可以在register_post_type()时解决此问题。
此外,您应该能够将其添加到functions.php并使其运行:

/**
 * Set a custom add to cart URL to redirect to
 * @return string
 */
function custom_add_to_cart_redirect() { 
    return 'http://www.yourdomain.com/your-page/'; 
}
add_filter( 'woocommerce_add_to_cart_redirect', 'custom_add_to_cart_redirect' );

这直接来自WooCommerce文档。谢谢!https://docs.woocommerce.com/document/set-a-custom-add-to-cart-url-to-redirect-to/

ddrv8njm

ddrv8njm2#

请将这行代码添加到您的functions.php文件中,它将禁用重定向功能。

add_filter( 'woocommerce_redirect_single_search_result', '__return_false' );
kkbh8khc

kkbh8khc3#

我在任何地方都找不到同样问题的答案,所以我想在这里发布我的解决方案...
假设你已经在WooCommerce设置中启用了 AJAX 按钮并禁用了重定向到结帐。
这部分本身只是刷新当前页面,而不是重定向到单个产品页面:

// Filter Single Add to Cart Form Action
add_filter( 'woocommerce_add_to_cart_form_action', 'woo_filter_cart_redirect_action' );
function woo_filter_cart_redirect_action( $url ) {
    if ( is_tax( 'product_cat' ) ) {
        $url = '';
    }
    return $url;
}

但是因为刷新也是不需要的,让我们允许表单仍然像正常一样提交,只是简单地更改它的目标属性。

// Capture Single Product Add to Cart Form
add_action( 'woocommerce_before_add_to_cart_form', 'woo_capture_single_product_add_to_cart_form' );
function woo_capture_single_product_add_to_cart_form() {
    if ( is_tax( 'product_cat' ) ) {
        ob_start();
    }
}

// Modify Single Product Add to Cart Form
add_action( 'woocommerce_after_add_to_cart_form', 'woo_modify_add_to_cart_form' );
function woo_modify_single_product_add_to_cart_form() {
    if ( is_tax( 'product_cat' ) ) {
        $form = ob_get_contents();
        ob_end_clean();
        $form = str_replace( '<form class="cart"', '<form class="cart" target="background-cart-iframe"', $form );
        echo $form;
    }
}

// -----------------------------
// Background Add to Cart Iframe
// -----------------------------
add_action( 'wp_footer', 'woo_add_background_cart_iframe' );
function woo_add_background_cart_iframe() {
    if ( is_tax( 'product_cat' ) ) {
        echo '<iframe id="background-cart-iframe" name="background-cart-iframe" src="javascript:void(0);" style="display:none;"></iframe>';
    }
}

注意每个函数中的is_tax( 'product_cat' )检查使其仅在产品存档页面上运行,要使其在其他地方(例如商店页面)工作,您必须添加/修改该条件。
根据您安装的主题/插件,这一切都可能会阻止客户看到产品已成功添加到购物车。但例如,我们已经安装了Woo Side Cart插件(禁用自动打开),它工作正常。

相关问题