我想显示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