我正在使用woocommerce建立一个定制的电子商务网站,并且我修复了“添加到购物车”按钮时遇到了麻烦。每当我在输入框/数量框中添加多个数量时,它只会将一个项目增加或添加到购物车中。这只会在我创建一个自定义循环时发生。
在商店和单品页面上,它可以正常工作。如果我添加10个项目,然后按添加到购物车按钮。它正好添加10项购物车。
这是我一直在工作的模板。
/*
* Template Name: Home
*/
get_header(); ?>
$args = array(
'post_type' => 'product',
'meta_query' => array(
array(
'key' => '_stock_status',
'value' => 'instock'
)
)
);
$crate_products = new WP_Query ( $args );
if ( $crate_products->have_posts() ) : while ( $crate_products->have_posts() ) :
$crate_products->the_post();
?>
//Display Product Thumbnail
$product_thumbnail = woocommerce_get_product_thumbnail();
?>
<?php echo $product_thumbnail ?>
<?php wc_get_template( 'single-product/price.php' ); ?>
<?php woocommerce_template_loop_add_to_cart( $crate_products->post, $product ); ?>
什么也令人困惑的是,AJAX功能适用于加售模板(up-sells.php),这是一个模拟的商业模式,它的工作正常。
/**
* Single Product Up-Sells
*
* This template can be overridden by copying it to yourtheme/woocommerce/single-product/up-sells.php.
*
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
global $product, $woocommerce_loop;
$upsells = $product->get_upsells();
if ( sizeof( $upsells ) === 0 ) {
return;
}
$meta_query = WC()->query->get_meta_query();
$args = array(
'post_type' => 'product',
'ignore_sticky_posts' => 1,
'no_found_rows' => 1,
'posts_per_page' => $posts_per_page,
'orderby' => $orderby,
'post__in' => $upsells,
'post__not_in' => array( $product->id ),
'meta_query' => $meta_query
);
$products = new WP_Query( $args );
$woocommerce_loop['columns'] = $columns;
if ( $products->have_posts() ) : ?>
<?php while ( $products->have_posts() ) : $products->the_post(); ?>
wp_reset_postdata();
我已经尝试应用这个开发者的解决方案
也是这一个
但它仍然产生相同的产出。我真的不知道为什么它只会将一个项目增加到购物车。我检查了浏览器控制台是否有任何错误,并且已经对代码的某些部分进行了注释,以确保或让您知道我已经尝试了不同的方法或选项来使功能正常工作