Ajax验证ACF和WP用户前端

时间:2019-07-03 07:36:46

标签: javascript php jquery ajax wordpress

我有一个自定义帖子类型,例如“客户”。此页面具有自定义字段。这就像“身份证号码”。我使用前端表单来吸引客户。此表单具有自定义字段,例如客户发布的类型(“身份号码”)。

我想在此表单中添加一个Ajax验证以获得身份编号。如果身份证号码在数据库中,我想显示一条错误消息并隐藏提交按钮。我怎样才能做到这一点?

function validate_kimlik_no($valid, $value, $field, $input) {
  if (!$valid || $value == '') {
    return $valid;
  }
  global $post; 
  $args = array(
    'post_type' => 'musteriler' + 'post',  // or your post
    'post__not_in' => array($post->ID), // do not check this post
    'meta_query' => array(
      array(
        'key' => 'musteri_kimlik_numarasi',
        'value' => $value
      )
    )
  );
  $query = new WP_Query($args);
  if (count($query->posts)) {
    // found at least one post that
    // already has $value
    $valid = 'Bu Kimlik Numarası Sistemde Bulunmaktadır.';
  }
  return $valid;
}
add_filter('acf/validate_value/name=musteri_kimlik_numarasi', 'validate_kimlik_no', 10, 4);

此代码在后端工作。但是我想在带有ajax的前端页面上使用此控件。

1 个答案:

答案 0 :(得分:0)

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<div id="open-chart" onclick="test()"> click me </div>
<div id="columnchart" style="width: 100%; height: 300px; display:none;"></div>

此代码正常工作,但我不能写任何值作为回报。

function wpuf_unique_kimlik_no_uyari( $error ) {
    if ( isset( $_POST['musteri_kimlik_numarasi'] ) ) {
        global $wpdb;   
        $kimlikno = $_POST['musteri_kimlik_numarasi'];
        $product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='musteri_kimlik_numarasi' AND meta_value='%s' LIMIT 1", $kimlikno ) );
        if ( $product_id ) {
            return __( 'This is an Error!' );
        }
    }
    return '';
}
add_filter( 'wpuf_add_post_validate', 'wpuf_unique_kimlik_no_uyari' );

此代码无效。有人可以帮我吗?