Wordpress自定义帖子类型无法转换为购物车

时间:2018-07-22 23:00:58

标签: wordpress cookies woocommerce custom-post-type cart

我在一个客户站点上工作,以前的开发人员使用WP自定义帖子类型来构建产品收集页面,类似于woocommerce,但只能添加到购物车以向公司报价,而购物车应用程序上没有交易

我无法添加到购物车很麻烦,但是当我查看购物车页面时。除非我刷新页面,否则该项目不会显示。购物车中删除商品时出现同样的问题。

代码中设置了一个cookie,我不熟悉,可能是问题所在。

我认为我将移到顶部可以解决某些问题,但是购物车无法正常工作。我在WP调试工具上遇到了一些意外的结束错误,因此我尝试使用PHP检查器查看我错过了多少并重新添加了它,但仍然无法正常工作。

非常感谢您的帮助!

—–--更多信息———-

Wordpress版本:4.9.7 PHP服务器:5.6 主题开发日期:未知(二十三个主题修改版本,从未更新)

-----代码———-

<?php
    if(get_query_var('remove') > 0){
      $r = get_query_var('remove');
      $d = get_query_var('d');
      if (isset($_COOKIE['cart'])) {
        $cart = json_decode(base64_decode($_COOKIE['cart']), true);
        unset($cart[$r][$d]);
        if(empty($cart[$r])){
            unset($cart[$r]);
        }
        if(empty($cart)){
            setcookie("cart", base64_encode(json_encode($cart)), time() - 3600, '/');
        } else {
            setcookie("cart", base64_encode(json_encode($cart)), time() + 2592000, '/');
        }
        header('Location: '.get_the_permalink());
        die();
    } else {
        header('Location: '.get_the_permalink());
        die();
    }
 }
?>

<?php get_header();?>
<?php if(isset($ok) && $ok == 1){?>
      <p class='after_cart_text'>Thank you for the opportunity to quote your project!  We will endeavour to respond within 24 hours.</p>
<?php } else { ?>
<?php if(isset($ok) && $ok == -1){?>
    <div class="alert alert-danger" role="alert">Please check the the captcha form.</div>

<?php } ?>

    <div class="baners_categories">
      <?php
        $rows = get_field('banery_categories', 'options');
                if($rows){
                shuffle( $rows );
                $image = $rows[0]['picture_categories'];
                ?>
                <img src="<?php echo $image; ?>" />
                <?php
                }
                ?>
                </div>

</fieldset>
<fieldset>

<!-- Form Name -->
<p class="legend_pe"><legend>Product Information</legend></p>
<?php if(isset($_COOKIE['cart']) && !empty($_COOKIE['cart']) && $post->post_name == 'cart'){
$cart = json_decode(base64_decode($_COOKIE['cart']), true);
//var_dump($cart);
$i = 0;
if (is_array($cart)) {
foreach($cart as $k => $row){
  foreach($row as $k2 => $item){
        //var_dump($item);
?>

<!--  form section code I comment it out -->

      <?php }?>
        <?php }?>
    <div class="col-sm-4" style="margin-bottom:15px;">
        <p><strong>Your cart is currently empty.</strong></p>
     </div>

      <?php }?>
      <?php }?>
<?php }?>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

非常感谢您的帮助或提示!

1 个答案:

答案 0 :(得分:0)

我在while循环的末尾添加了<?php wp_reset_postdata(); ?>,现在开始工作。此处提供更多信息:https://codex.wordpress.org/Function_Reference/wp_reset_postdata