php – 在Woocommerce中从特定产品类别购买产品时重定向

我有这个代码:

add_action('template_redirect', 'woo_custom_redirect');
function woo_custom_redirect( $redirect ) {

if (
    ! is_user_logged_in()       
    && (is_checkout())
    ) {
    wp_redirect( home_url( '/my-account/edit-account/' ) );
    return $redirect;
    }
}

当我下订单购买某个类别的产品时,如何更换重定向条件?

例如,如果用户从某个类别购买产品,那么当他尝试下订单时,他会在成功注册后重定向到注册并返回.

解决方法:

以下代码在具有特定产品类别的项目时,将在结帐页面中将未登录用户重定向到我的帐户页面.您必须在代码中定义您的特定产品类别:

add_action('template_redirect', 'woo_custom_redirect');
function woo_custom_redirect( $redirect ) {
    // HERE set your product category (can be term IDs, slugs or names)
    $category = 'posters';

    $found = false;

    // CHECK CART ITEMS: search for items from our product category
    foreach ( WC()->cart->get_cart() as $cart_item ){
        if( has_term( $category, 'product_cat', $cart_item['product_id'] ) ) {
            $found = true; 
            break;
        }
    }

    if ( ! is_user_logged_in() && is_checkout() && $found ) {
        wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id') ) );
        exit();
    }
}

代码位于活动子主题(或活动主题)的function.php文件中.经过测试和工作.

上一篇:04-webpackDevServer-实时编译,提升开发效率神器


下一篇:mysql 数据库关于增加用户权限的问题