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

时间:2015-03-18 15:23:58

标签: wordpress forms login woocommerce

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

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

是否有任何钩子/函数来显示注册表和登录表单?

由于 Maddin

2 个答案:

答案 0 :(得分:0)

我知道,这个问题有点老了......

试试这个:

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();
        }
    }

答案 1 :(得分:0)

尽管Oliver的代码有效,但是现在缺少了几种Woocommerce样式以及WP用于正确呈现表单的后续JS。自从答案发布以来,他们也许就添加了这些。如果使用了<body>短代码,则此代码段将添加相关的woo-login类。

/**
 * 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;
        });
    }
});

此处链接到要点:https://www.cloudera.com/documentation/spark2/latest/topics/spark2_troubleshooting.html#spark_troubleshooting__hive_compatibility