我想显示woocommerce登录和注册页面,但在用户登录时没有选项。
在以前的版本中,您可以使用短代码,但现在必须使用[my_account]。当用户登录时,他会看到他的帐户信息。
是否有任何钩子/函数来显示注册表和登录表单?
由于 Maddin
答案 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;
});
}
});