在PHP中更新和传递值

时间:2019-02-24 18:36:43

标签: javascript php ajax wordpress woocommerce

我想使用Woocommerce在Wordpress中创建捆绑创建器,在其中选择4件T恤中的1件+ 4对袜子中的1件,然后将它们添加到购物车中。目前,我一直在想办法。我目前需要实现的是: 有一个顶部图像对应于当前选择的产品,下面有三个较小的图像。单击小图像后,需要更改顶部图像。底部还有一个标题,与当前选择的产品相对应,该标题与顶部图像一起更改。 You can see the intended result here.

我需要以某种方式获取用户单击的产品的ID,并将其传递给其他php函数。这就是我卡住的地方。有人可以帮我吗?

代码应如下所示:

<div id="selected-product-image">
  <?php get_the_post_thumbnail(/* ID of the currently selected product*/); ?>
</div>

<ul class="products">
  <?php
      $args = array( 'post_type' => 'product', 'posts_per_page' => 4, 'product_cat' => 't-shirts', 'orderby' => 'name' );
      $loop = new WP_Query( $args );
        				?>

    <?php while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>

      <li class="product">

        <div class="select-product"><!--This should have a function to capture the product ID on click. -->
          <?php echo get_the_post_thumbnail($loop->post->ID, 'shop_catalog'); ?>
        </div>

      </li>
      <?php endwhile; ?>

      <div id="selected-product-name">
        <?php get_the_title(/* ID of the currently selected product*/) ?>;
      </div>

      <?php wp_reset_query(); ?>
</ul>

我知道我可以使用AJAX进行类似的操作,但是我不确定如何在get_the_post_thumbnail()或get_the_title()中使用返回的ID。这就是我得到的:

<script type="text/javascript">
  jQuery(document).ready(function() {
    jQuery("#select-product").click(function() {
      var id = 29; /* Any value for testing */

      jQuery.ajax({
          method: "post",
          url: "/test.php",
          data: {
            productID: id
          }
        })
        .done(function(data) {
          alert(data);
          /* How do I use this data to update the picture/title? */
        });
    });
  });
</script>


<!-- THE test.php FILE -->
<?php 
$productID = $_POST['productID'];
echo $productID;
?>

更新: 我曾尝试编辑test.php以回显一个函数,但是每次尝试在test.php文件中使用Wordpress函数时,都会出现500错误。我尝试包括wp-blog-header.php文件,以便功能可以运行,但仍然无济于事。我在做什么错了?

<!-- THE test.php FILE -->
<?php 
include_once('wp-blog-header.php');

$productID = $_POST['productID'];
echo get_the_post_thumbnail($productID);
?>

0 个答案:

没有答案