WordPress-无法通过AJAX回调更新全局变量

时间:2019-08-08 10:03:34

标签: javascript php jquery wordpress

让我说我知道这个主题有很多问题,但是我无法解决它。我有一个Wordpress网站,用于开发其主题。在其中一个页面中,我有一个多步骤过程,需要根据页面3上的用户选择在步骤4上显示内容。问题是,阶段4的内容需要使用WP_Query从Wordpress中检索。

长话短说,我正在尝试设置用户在全局变量中第3步上单击的项目的ID,并在第4步(两个步骤都在同一php文件上)中访问它。

AJAX调用有效,但是全局变量只是未更新。我真的迷路了,不胜感激。

Functions.php

add_action('wp_ajax_set_location', 'tft_handle_ajax_request');
add_action('wp_ajax_nopriv_set_location', 'tft_handle_ajax_request');
function tft_handle_ajax_request()
{
  global $selected_location;
  $id  = isset($_POST['location_id']) ? trim($_POST['location_id']) : "";
  global $selected_location;
  $selected_location = $id;

  exit;
}

第4步

<?php
global $post, $designer_ids, $designer_id, $selected_location;
$post_id = $post->ID;
$main_title = get_field('main_title');
if (!$main_title) $main_title = get_the_title();
$logo = get_field('logo', 'option');
$args = ['post_type' => 'designer', 'posts_per_page' => -1, 'fields' => 'ids', 'meta_key' => 'des_location', 'meta_value' => $id];

$des_loop = new WP_Query($args);
$des_ids = [];
if ($des_loop->have_posts()) $des_ids = $des_loop->posts;
?>

<div class="step_item step_details">
  <div class="step_in">
    <div class="step_title_wrap">
      <div class="container">
        <div class="row">
          <div class="col-12">
            <div class="step_title">
              <h2><?php _e('myTitle'); ?></h2>
              <label class="selected_loc_label"><?php echo $selected_location ?></label>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="step_content">
      <div class="designers_wrap">
        <?php if ($des_ids) { ?>
          <?php $designer_ids = $des_ids; ?>
          <div class="container">
            <div class="row">
              <div class="col">
                <?php get_template_part('elements/designers/designers_slider'); ?>
              </div>
            </div>
          </div>
          <?php $designer_id = $designer_ids[0]; ?>
          <?php get_template_part('elements/designers/designer'); ?>
          <?php $designer_id = null; ?>
          <?php $designer_ids = null; ?>
        <?php } ?>
      </div>
    </div>
  </div>
</div>
functions.php 中的

$id具有正确的值,但是当我回显$selected_location时,什么也没有显示。

0 个答案:

没有答案