0

我正在为我的网站使用wp 简单的贝宝购物车。我知道您可以在添加到购物车时说 [wp_cart:Demo Product 1:price:15:var1[Size|Small|Medium|Large]:end] 以获取选项的下拉列表,但我希望价格为根据我选择的选项进行更新。我对 php 非常方便,所以我可以很轻松地获取值并更新 $price 变量,但我无法真正看到 wp-shopping-cart.php 文件中的选项在哪里添加名称值。

那么有没有其他人有幸根据下拉菜单中选择的选项对其进行编辑以更新价格?

4

2 回答 2

0

好吧,您确定简单的贝宝购物车不能为产品的不同变体提供不同的价格吗?在过去,它一直是 wordpress 电子商务中的一个大问题。也许你应该检查http://www.tipsandtricks-hq.com/forum/topic/multiple-pricing-in-simple-paypal-shopping-cart

于 2012-05-13T23:02:07.347 回答
0

我打算尝试破解 ReadForm 函数,但我编写了一个名为 CheckSize 的小 Java 脚本片段,在 ReadForm 函数将表单数据放入变量之后,我在表单命令中挂起了 onsubmit。

在 wp_shopping_cart.php 文件中,我将 onsubmit 修改为如下所示 --> onsubmit="ReadForm(this, true);CheckSize (this, true); <--

ReadForm 函数将 small、medium 或 large 放入名为“variation1”的变量中,并将 price 放入名为“price”的变量中,因此在 CheckSize 函数中,我测试了 Variation1 的值,并在他们选择中号或大号时相应地更改价格变量。

我编辑了主题的 header.php 文件,并在 /head 标记前面对我的 price.js 文件(仅包含下面的 CheckSize 函数)进行了 JavaScript 调用,以便在加载该主题中的任何页面时加载我的函数。

我的函数贴在下面(price.js 的全部内容)。默认的基本价格是小件商品的价格,在我的例子中是 20 美元。如果他们选择中价,我会在小价上加 15 美元。如果他们选择大的,我会在小价格上加 30 美元。这对我有用,因为我所有的小尺寸产品都是 20 美元,但是可以很容易地修改此代码,以将基本价格乘以中型和大型的百分比,如果您的产品具有不同的基本价格,这将使其更加灵活。(即中号可以是小号的 150%,大号可以是小号的 200%)

// --

function CheckSize(form_name) {

// dump any variable for checking contents next
// alert('Price:' + form_name.price.value);
// return false; 

// next set price to a numeric variable value of 0
var price= new Number; 
// next set price to base price times 1 so it doesn't become a string variable
price=form_name.price.value*1; 

// size medium price adjustment is next
if(form_name.variation1.value=='medium') 
{ 
form_name.price.value=price+15;
}

// size large price adjustment is next
if(form_name.variation1.value=='large') 
{ 
form_name.price.value=price+30;
}

// dump any variable for checking contents next
// alert('Price:' + form_name.price.value);
// return false; 

} // end of function CheckSize()

// --

对上面这段代码的调用(onsubmit)的放置导致它在变量被 ReadForm 函数“破坏”之后但在它们被发送到购物车之前执行。我是一个大型机老手,只是在玩它,所以我希望我的术语不会让你失望。昨天我对 JavaScript 的了解足够多,可以做我必须做的事情,所以对于专家来说它可能看起来很草率。如果它让你畏缩,我很抱歉。

谢夫

于 2013-08-23T16:34:56.020 回答