wordpress - WooCommerce 在结帐前检查并重定向到登录

标签 wordpress woocommerce checkout

如果检测到用户未登录,默认的 Woocommerce 结账行为会在结账页面上显示“创建帐户”框,从而打破许多网络惯例。新用户可能不知道在没有任何添加说明的情况下该怎么做。

我想要的顺序是:

用户结帐>检查登录>

  • 如果已登录,请继续结帐。
  • 如果未登录,则重定向到登录/注册页面 > 继续到结帐页面。

这正是 WooCommerce login redirect based on cart 中的情况

但是,让我感到不舒服的是,在上述情况下,一旦用户登录,如果购物车不为空,他/她将被重定向到结帐页面。如果用户的购物车不为空,即使他/她还不想结账,他/她也根本无法访问 MyAccount。

对这个有什么想法吗?

最佳答案

尝试这个不需要改变核心代码

  add_action('template_redirect','check_if_logged_in');
    function check_if_logged_in()
    {
        $pageid = get_option( 'woocommerce_checkout_page_id' );
        if(!is_user_logged_in() && is_page($pageid))
        {
            $url = add_query_arg(
                'redirect_to',
                get_permalink($pagid),
                site_url('/my-account/') // your my account url
            );
            wp_redirect($url);
            exit;
        }
        if(is_user_logged_in())
        {
        if(is_page(get_option( 'woocommerce_myaccount_page_id' )))
        {
            
            $redirect = $_GET['redirect_to'];
            if (isset($redirect)) {
            echo '<script>window.location.href = "'.$redirect.'";</script>';
            }
    
        }
        }
    }

关于wordpress - WooCommerce 在结帐前检查并重定向到登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48477504/

相关文章:

html - Hashlink 在 Safari 中不起作用

php - 从 instagram 小部件调整显示图像的大小

css - WordPress 主题 Child CSS 不会覆盖 Parent,即使 Child CSS 在之后加载

php - 在 Woocommerce 中自定义 date_i18n 格式

mysql - 使用 SQL 创建 WooCommerce 分析报告

php - 从 Woocommerce 中的 URL 变量填充结帐字段值

使用通配符对特定修订版进行 Git check out

php - 建立 MySQL 数据库连接 IIS10 的 WordPress 错误

php - Woocommerce,获取当前产品 ID

magento - 结帐时缺少 Paypal Express 选项 - Magento 1.4.2