你的<?php
/?>
标记对齐后,实际的PHP代码都不会被解释为PHP代码(除了is_page (\'1150\')
它实际上只是将所有内容打印到标记中,包括<script>
要素因此,由于它没有运行检查用户或用户元数据的逻辑,因此脚本元素始终存在。
我可以这样简化:
<?php
if( is_page( \'1150\' ) ) {
$current_user_id = get_current_user_id();
if( $current_user_id > 0 ) {
$permission = get_user_meta( $current_user_id, \'pro_status_confirmed_true\' , true );
if( empty( $permission ) ) {
?>
<script type="text/javascript">jQuery(document).ready(function(){ jQuery(\'form#gform_190\').trigger(\'submit\');});</script>
<?php
}
}
}
?>
但是,如果提交此表单所做的只是立即重定向“非pro”状态的用户,您可能希望使用
wp_redirect()
. 这比打印脚本元素更高效,也更安全—在打印脚本元素以重定向“未经授权”的用户时,他们仍会加载页面正文—如果脚本旨在阻止他们访问该页面,用户仍然可以在浏览器缓存中找到该页面,防止重定向,或者干脆禁用JavaScript以绕过检查。使用重定向
wp_redirect()
在将内容发送到客户端之前,速度也会有所加快。