我正在为在拉雷维尔开会的客人建造一辆购物车。我可以向会话变量“cart”添加一个带有数量的产品但是,当我再次添加相同的产品时,我无法增加数量,因为我无法在数组中搜索相同的产品ID。
控制器
public function addToSessionCart(Request $request, $id)
{
if (session()->has('cart')) {
$oldCart = session()->get('cart');
$cartdata = $oldCart;
if (array_key_exists('product_id', $cartdata)) {
if (in_array($id, $cartdata['product_id'], true)) {
$cartdata['quantity'] += 1;
} else {
$cartdata['product_id'] = $id;
$cartdata['quantity'] = 1;
}
}
} else {
$cartdata = [];
$cartdata['product_id'] = $id;
$cartdata['quantity'] = 1;
}
session()->put('cart', $cartdata);
session()->flash('message', 'Item added to cart !');
return back();
}
我正在将数据从我的AppServiceProvider传递到购物车:
view()->composer('*', function ($view) {
if (Auth::check()) {
$cart_items = Cart::where('user_id', Auth::user()->id)->with('product')->get();
$cart_items_count = Cart::where('user_id', Auth::user()->id)->count();
$menus = Menu::where('status', '1')->orderBy('order', 'ASC')->get();
$view->with(['cart_items' => $cart_items, 'cart_items_count' => $cart_items_count, 'menus' => $menus]);
} else {
$cart_items = null;
$session_cart_items = null;
if (\Session::get('cart')) {
$session_cart_items = [];
foreach (session('cart') as $session_cart_items[]) {
$session_cart_items['product'] = Product::where('id', session('cart.product_id'))->get();
$session_cart_items['quantity'] = session('cart.quantity');
}
}
$cart_items_count = count(\Session::get('cart'));
$menus = Menu::where('status', '1')->orderBy('order', 'ASC')->get();
$view->with([
'cart_items' => $cart_items, 'cart_items_count' => $cart_items_count, 'menus' => $menus,
'session_cart_items' => $session_cart_items,
]);
}
});
查看
@foreach($session_cart_items['product'] as $key => $name)
<div class="product-cart">
<div class="product-image">
<img src="/frontend/assets/images/{{ $name->image }}" alt="image">
</div>
<div class="product-content">
<h3><a href="/product/{{$name->id}}/{{$name->slug}}">{{$name->name}}</a></h3>
<div class="product-price">
<span>{{ $session_cart_items['quantity'] }}</span>
<span>x</span>
₹ <span class="price">{{ $name->price }}</span>
</div>
</div>
</div>
@php
$total += ($name->price * $session_cart_items['quantity']);
@endphp
@endforeach
当相同的产品被添加到购物车时,我希望数量增加。如果没有,则向会话数组添加新产品id和数量
这一行需要更改:
foreach (session('cart') as $session_cart_items[]) {
您不能使用[]
进行阅读。
foreach (session('cart') as $session_cart_items) {
如果购物车中的数量已经是1,我试图仅用数量更新购物车,但它就是不起作用。我的购物车数组不会更新。 这是我的viewHolder类,其中array menuItemArrayList由产品组成,array selectionItemArrayList是购物车。int totalAmount是购物车中产品的美元总和,它的计算结果很好。 在for each block中,我遍历cart数组,查看是否已经
我正在重写AJAX函数,以便使用WooCommerce添加产品,这样我也可以将属性发送到购物车(这不是开箱即用的)。 在通过AJAX添加变量产品后,我按照更新WooCommerce购物车的说明进行了操作——这正是我想要的——但它并不完全有效。 当我注销时,一切都很好。但是,当我登录Wordpress时,PHP覆盖不起作用/被忽略。我没有收到任何错误,也没有向购物车添加任何产品。我尝试了许多不同的方
目标:在一个按钮点击中添加多个可变产品到购物车。 我试着将这段代码放入循环中,但它不起作用。 但是这种方法不能解决问题,因为我需要在一个按钮点击中添加几个产品变体。 所有的建议都将不胜感激。多谢了。
问题内容: 我已经组装好了将链接添加到购物车中的可变产品的链接,就像这样,但是我对如何“刷新”购物车而不重新加载页面感到困惑。我的猜测是,我没有正确地向购物车请求中添加此AJAX,因此未调用woocommerce_add_to_cart_fragments(我相信我的购物车HTML会在此处放置刷新)。 如果有人能指出我正确的方向,我将不胜感激。Variable / AJAX / WooCommer
我已经组装了一个链接,像这样将一个可变产品添加到我的购物车,但是我不知道如何在不重新加载页面的情况下“刷新”购物车。我的猜测是,我没有正确地将此AJAX添加到购物车请求,因此,woocommerce_add_to_cart_fragments(我相信我的购物车超文本标记语言将被放置以供刷新)没有被调用。 如果有人能给我指出正确的方向,我将不胜感激。Variable/AJAX/WooCommerce
我正在创建一个WooCommerce(5.6.0版)网站,用户可以在该网站上购买泡沫产品,并在存档页面上计算价格。基本上,用户输入维度,然后根据公式计算价格。我目前正在努力更新购物车中的价格,我以前没有在这一级别定制产品和价格的经验,因此任何帮助都将不胜感激。。到目前为止,我已经完成了以下步骤: 1.获取(通过Ajax)并在WC_会话中设置自定义产品价格 2.从WC_Session数据更改购物车项