0

我需要你的帮助。我有一个需要使用 ajax 请求显示结果的表单。结果未显示在前端。但是如果我们通过登录到后端来清除缓存,它工作正常,几天后表单再次损坏。然后再次清除后端的缓存。但最终,几天后,它又坏了。

如果我们在主页上的 URL 上添加参数,该表单也可以工作,例如www.mywebsite.com/?a=swsa

我试图搜索可能的解决方案,但我什么也没看到。

这是我的前端代码:

<script type="text/javascript">
  
  jQuery(document).ready(function($) {
    
  var ajaxurl = '<?php echo admin_url("admin-ajax.php"); ?>';
  
    $("#post_code").keyup(function(){
    
      var postcode = $(this).val();
      
      $("#init_post_code").val(postcode);
      
      if(postcode != ''){
        var data = {
        
          action: 'postcode_process',
          postcode: postcode,
          security: '<?php echo wp_create_nonce("get-postcodes"); ?>'
          
        }
        $.getJSON(ajaxurl, data, function(response){
            
          if(response.success){
            $("#init_location").val(response.data.location);
          }
          
        });
      }
    
    });
    
});    
</script>

这是后端代码:

function process_postcode(){

    //ajax
    check_ajax_referer('get-postcodes','security');

    //entered data
    $entered_postcode = strtoupper($_REQUEST['postcode']);

    //array of zip codes

    //my conditions displays here
    $zone1 = array('bunch of zip codes');
    
    $response = array();
    
    //some conditions on the form 
    if(in_array($cleaned[0],$zone1)){
        $response['location'] = 'central_london';
    }

    wp_send_json_success($response);
    wp_die();
    
}
add_action('wp_ajax_postcode_process', 'process_postcode');
add_action('wp_ajax_nopriv_postcode_process', 'process_postcode');

希望你们能帮助我解决这个问题。

4

0 回答 0