我在一个客户站点上工作,以前的开发人员使用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(); ?>
非常感谢您的帮助或提示!
答案 0 :(得分:0)
我在while循环的末尾添加了<?php wp_reset_postdata(); ?>
,现在开始工作。此处提供更多信息:https://codex.wordpress.org/Function_Reference/wp_reset_postdata