wooccommerce:显示没有帐户信息的登录/注册表格



我想显示wooccommerce登录和注册页面,但当用户登录时没有选项。

在以前的版本中,你可以使用短代码,但现在你必须使用[my_account]。当用户登录时,他会看到自己的帐户信息。

是否有显示注册和登录表单的挂钩/函数?

谢谢Maddin

我知道,这个问题有点老。。。

试试这个:

add_shortcode('woo-login', 'my_login');
function my_login() {
        if (is_user_logged_in()) {
         // Do what you want...
        } else {
            ob_start();
            echo '<div class="woocommerce">';
            wc_get_template('myaccount/form-login.php');
            echo '</div>';
            return ob_get_clean();
        }
    }

尽管Oliver的代码可以工作,但它现在缺少了几个Wooccommerce样式和WP用来正确呈现表单的后续JS。也许他们在答案发布后就添加了这些。如果使用woo-login短代码,此代码段将添加相关的<body>类。

/**
 * Shortcode - Render Woocommerce login/register form
 **/
add_shortcode('woo-login', function() {
    if (is_user_logged_in()) {
    } else {
        ob_start();
        echo '<div class="woocommerce">';
        wc_get_template('myaccount/form-login.php');
        echo '</div>';
        return ob_get_clean();
    }
});

/**
 * Mitigate theme before render
 **/
add_action('template_redirect', function() {
    global $post;
    if (has_shortcode($post->post_content, 'woo-login')) {
        // Add Woocommerce body classes
        add_filter('body_class', function($body_classes) {
            $body_classes[] = 'woocommerce-account';
            $body_classes[] = 'woocommerce-page';
            return $body_classes;
        });
    }
});

这是Gist的链接:https://gist.github.com/dhaupin/7a5d429de5be0d623add58edad51b479

最新更新