好的,我有一个照片缩略图网格,可以通过在商店中设置的单个产品进行销售。该产品有两种尺寸,小型和大型。大号有一个修饰符,可以在选中时提高价格。
我正在使用JS删除然后将修改器组克隆到用户选择的缩略图之一,有效地将其固定到页面上的单个产品中。
我的问题是,当我删除并克隆修改器时,价格保持与上次产品添加到购物车时所选的价格相同。
所以和例子:
用户选择thummb#1并选择大修改器(+ $ 20)并将其添加到购物车(AJAX)。然后,当她选择拇指#5时,修改器被设置回小,但价格仍然反映了大的。
由于这一切都是通过JS完成的,没有重新加载页面,我如何重置store_product_price?
ajax : function(){
if( !$( '#product_form' ).size() ) return;
$( '#product_form' ).submit( function(){
$( '.card .add_to_cart' ).val( 'Processing...' );
var url = $( this ).attr( 'action' );
var data = $( this ).serialize();
$.post( url, data, function(){
$( '#sidebar-cart' ).load( '/store/cart/' );
$( '.card .add_to_cart' ).val( 'Add to Cart' );
$( '.selected' ).removeClass( 'selected' );
$( '.not-selected' ).removeClass( 'not-selected' );
} );
return false;
} );
},
答案 0 :(得分:1)
我不完全确定'删除和克隆修饰符'是什么意思 - 你是否为每个缩略图创建了一个新的小/大下拉列表?在这种情况下,它如何知道哪一个提交表格?
为每个缩略图创建新的产品表单可能更容易,然后使用JS隐藏/显示修改器。
在任何情况下,如果你想坚持现状,你可以看看themes/third_party/store/store.js
看看store_product_price
类是如何实现的(我假设你已经添加了{ {1}}按你的价格分类,虽然你没有提到它)。如果您在store_product_price
中设置了$debug = 1
,那么默认情况下会加载默认版本的javascript,这样您就可以更轻松地逐步查看它的卡住位置。