Es wird versucht, festzustellen, ob ein Metawert für den Benutzer vorhanden ist und ob das Formular zur automatischen Weiterleitung automatisch weitergeleitet wird

Ich habe eine function, die ich versuchte zu schaffen, dass, wenn auf einer bestimmten Seite es Benutzermeta nach Wert überprüft und wenn kein Wert oder falscher Wert dann das Formular automatisch absendet, um den Benutzer umzuleiten. Es funktioniert derzeit nicht und leitet alle Benutzer um. Der Metaschlüssel ist = pro_status_confirmed_true und der Wert ist professionell

 global $current_user; get_currentuserinfo(); if ( $current_user ) { $permission = get_user_meta( $current_user->ID, 'pro_status_confirmed_true' , true ); if ( empty( $permission ) { jQuery(document).ready(function(){ jQuery('form#gform_190').trigger('submit');}); } } <?php } 

Solutions Collecting From Web of "Es wird versucht, festzustellen, ob ein Metawert für den Benutzer vorhanden ist und ob das Formular zur automatischen Weiterleitung automatisch weitergeleitet wird"

Ihre < ?php / ?> -Tags sind so ausgerichtet, dass keiner Ihrer PHP-Codes als PHP-Code interpretiert wird (mit Ausnahme der is_page ('1150') ) - es wird nur in Ihr Markup, einschließlich des gedruckt Element. Da die Logik nicht ausgeführt wird, um den Benutzer oder die Benutzermetadaten zu überprüfen, ist das Skriptelement immer vorhanden.

Ich würde alles so vereinfachen:

 < ?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 ) ) { ?>  < ?php } } } ?> 

Wenn das Absenden dieses Formulars "non-pro" Statusbenutzer sofort umleitet, möchten Sie vielleicht die Weiterleitung mit wp_redirect() lesen. Dies ist effizienter als das Drucken eines Skriptelements und auch sicherer - beim Drucken eines Skriptelements zum Umleiten von "nicht autorisierten" Benutzern wird immer noch der Seitenkörper geladen - wenn das Skript sie von dieser Seite fernhalten soll, könnte ein Benutzer trotzdem finde die Seite in ihrem Browser-Cache, verhindere die Weiterleitung oder deaktiviere einfach JavaScript, um die Prüfung zu umgehen. Die Weiterleitung mit wp_redirect() bevor der Inhalt an den Client gesendet wird, ist ebenfalls etwas schneller.