Php 如何在页面表单上使用woocommerce登录,然后重定向用户

Php 如何在页面表单上使用woocommerce登录,然后重定向用户,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,问题: 我正在努力使我的网站上的一个页面只对登录的人开放,我已经成功地实现了is loggin in show this else show woocommerce登录/注册部分。我在下面的第二个代码框中添加了用于此操作的代码 我的问题是在他们登录后将其发送回页面,并且仅在这种情况下。例如,该页面被称为免费内容,通常woocommerce客户在登录后会被发送到我的帐户,而在这种情况下,当从该页面登录时,我希望他们通过重定向到同一页面保持在页面上,我猜这几乎是一次刷新,但这次状态是登录的,所以他们

问题: 我正在努力使我的网站上的一个页面只对登录的人开放,我已经成功地实现了is loggin in show this else show woocommerce登录/注册部分。我在下面的第二个代码框中添加了用于此操作的代码

我的问题是在他们登录后将其发送回页面,并且仅在这种情况下。例如,该页面被称为免费内容,通常woocommerce客户在登录后会被发送到我的帐户,而在这种情况下,当从该页面登录时,我希望他们通过重定向到同一页面保持在页面上,我猜这几乎是一次刷新,但这次状态是登录的,所以他们将看到内容,而不是登录表单

我所做的: 我已经在没有重定向的情况下手动测试了登录状态,就内容锁定方面而言,这一切都正常

我读了另一篇关于functions.php过早运行的文章,不知道它是什么页面,但我不确定这对我的情况意味着什么,以及如何实现这一点

通过一些noodling,我成功地使所有登录重定向到此页面,但这并不是我想要的

我发现,当使用下面的代码时,它似乎不起作用,在if is_页面(“free-stuff”)检查期间,它似乎没有传递重定向。所有这些之后,这里是我正在使用的代码:

function wc_freestuff_user_redirect( $redirect, $user ) {
if(is_page( 'free-stuff' )){
$redirect = 'http://www.example.com/free-stuff/';
 }
return $redirect;
}
add_filter( 'woocommerce_login_redirect',
'wc_freestuff_user_redirect',10,2);         
有人能帮我找出我可能做错了什么或如何解决这个问题吗?代码位于child themes functions.php文件中

我想展示一下我是如何实现表单的可能会有所帮助。同样在有问题的页面上,我添加了protected字段,并将其设置为yes以触发下面的函数

function restrict_page_content($content) {
if( get_post_meta( get_the_ID(), 'protected', true ) == 'yes' && !is_user_logged_in() ) {
        //consider moving this below into a page template and calling the page template instead 
    return 'YOU MUST BE LOGGED IN TO VIEW THIS CONTENT <br/ > [woocommerce_my_account]';

}
else {
    return $content;
}
}
add_filter( 'the_content', 'restrict_page_content' );
功能限制页面内容($content){
if(get_post_meta(get_ID(),'protected',true)='yes'&&!用户登录了吗()){
//考虑将下面的内容移动到页面模板中,并调用页面模板
return“您必须登录才能查看此内容
[woocommerce\u my\u帐户]”; } 否则{ 返回$content; } } 添加过滤器(“内容”、“限制页面内容”);
为了澄清这一点,在子主题的functions.php中也有介绍