web-dev-qa-db-fra.com

essayant de déterminer si la méta-valeur est pour l'utilisateur et ce n'est pas le formulaire de soumission automatique à rediriger

J'ai une fonction j'ai essayé de créer que si sur certaines pages, il vérifiera la méta de l'utilisateur pour la valeur et si aucune valeur ou valeur incorrecte ne soumet automatiquement le formulaire pour rediriger l'utilisateur. Cela ne fonctionne pas actuellement et redirige tous les utilisateurs. la méta clé est = pro_status_confirmed_true et la valeur est professionnelle

<?php } if ( is_page ('1150')){?>

global $current_user;

get_currentuserinfo();

if ( $current_user ) {

$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 }
1
poto

Vos balises <?php/?> sont alignées de telle sorte qu’aucun de vos codes PHP ne soit interprété comme un code PHP (à l’exception de la condition is_page ('1150') conditionnelle); y compris l'élément <script>. Donc, comme la logique de vérification de l'utilisateur ou des métadonnées de l'utilisateur n'est pas en cours d'exécution, l'élément de script est toujours présent.

Je simplifierais tout ça comme ça:

<?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
    }
  }
}
?>

Si tout ce formulaire est soumis, il redirige instantanément les utilisateurs ayant le statut "non-pro", mais vous voudrez peut-être vous renseigner sur la redirection en utilisant wp_redirect() . C’est plus efficace que d’imprimer un élément de script et plus sûr: lorsqu’il imprime un élément de script pour rediriger des utilisateurs "non autorisés", ils continuent de charger le corps de la page - si le script est censé les garder en dehors de la page, rechercher la page dans le cache de leur navigateur, empêcher la redirection, ou simplement désactiver JavaScript afin de contourner le contrôle. La redirection à l'aide de wp_redirect() avant que le contenu soit envoyé au client sera également un peu plus rapide.

0
bosco