与用户表匹配的自定义Formdata

时间:2020-03-18 作者:Amar Verma

我正在编写一个代码,将表单输入数据与wp中的用户表相匹配,但它工作不正常,无论条件是真是假,它都会给出相同的消息。请帮我解决这个问题。

  function email_form_code() {
    echo \'<form action="\' . esc_url( $_SERVER[\'REQUEST_URI\'] ) . \'" method="post">\';
    echo \'<p>\';
    echo \'<p>\';
    echo \'Your Email (required) <br />\';
    echo \'<input type="email" name="email" value="\' . ( isset( $_POST["email"] ) ? esc_attr( $_POST["email"] ) : \'\' ) . \'" size="40" />\';
    echo \'</p>\';
    echo \'<p><input type="submit" name="submit" value="Send"/></p>\';
    echo \'</form>\';
}

function checkpoint_email() {
    global $wpdb;
    if(isset($_POST[\'submit\'])){
    $email = sanitize_email($_POST[\'email\']);
    if(!is_email($email)) {
        echo \'<div class="error"><p>Invalid e-mail!</p></div>\';
     }
    $datum = $wpdb->get_results("SELECT COUNT(*) FROM wp8p_users WHERE $current_user->user_email = $email");
    if($datum < 0) {
       echo "Email Verified";
    }
    else {
         echo "Email Not Verified";
    }   
}
}
function ec_shortcode() {
    ob_start();
    checkpoint_email();
    email_form_code();
    return ob_get_clean();
}
add_shortcode( \'av_email_cform\', \'ec_shortcode\' );
?>

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

你的有条件支票是错误的,应该是><.

但更重要的是,为什么要执行原始SQL查询,只需使用标准函数,例如。get_user_by:

$user = get_user_by( \'email\', $email );
if ( !$user ) {
    // there is no user with that email
}

同时,submit 是用于检查表单输入的一个非常通用的名称,请使用更具体的名称,如av_email_cform_submit.

您还可以替换action="\' . esc_url( $_SERVER[\'REQUEST_URI\'] ) . \'" 具有action="". 你还有一个双人间<p><p> 以您的形式。

相关推荐

Gravity Forms - RMA Count

我是Wordpress的新手,所以想知道是否有人可以帮忙?我正在通过重力表单创建一个返回表单。然而,在每个表单的顶部,我想显示一个退货表单编号,例如RMA001、RMA002等。我想这可能可以使用一些编码来完成,但不知道如何编码。请你让我知道如何做到这一点,并解释我需要在哪里添加代码。如果您能掌握简单的英语,我们将不胜感激!非常感谢!本