在Woocommerce中,我试图找到一种方法,如果购物车中的重量超过100磅,则可以对整个客户的订单应用10%的折扣.我是实现这一目标的一部分.对于下一步,我正在寻找一种通过actions.php以动作/钩子编程方式应用优惠券代码的方法.
似乎我可以使用函数woocommerce_ajax_apply_coupon来执行此操作(http://docs.woothemes.com/wc-apidocs/function-woocommerce_ajax_apply_coupon.html)但我不确定如何使用它.
到目前为止,我已经修改了cart.php以获得购物车中所有产品的总重量,我创建了一个应用折扣的优惠券(如果手动输入),我已经在functions.php中添加了一些代码来检查重量并向用户显示消息.
编辑:删除了部分代码,完成的代码包含在下面的解决方案中.
感谢Freney的指导.这是工作最终结果,它在条件满足时成功应用折扣优惠券,并在不再符合条件时将其删除:
/* Mod: 10% Discount for weight greater than 100 lbs
Works with code added to child theme: woocommerce/cart/cart.php lines 13 - 14: which gets $total_weight of cart:
global $total_weight;
$total_weight = $woocommerce->cart->cart_contents_weight;
*/
add_action('woocommerce_before_cart_table', 'discount_when_weight_greater_than_100');
function discount_when_weight_greater_than_100( ) {
global $woocommerce;
global $total_weight;
if( $total_weight > 100 ) {
$coupon_code = '999';
if (!$woocommerce->cart->add_discount( sanitize_text_field( $coupon_code ))) {
$woocommerce->show_messages();
}
echo '<div class="woocommerce_message"><strong>Your order is over 100 lbs so a 10% Discount has …
Run Code Online (Sandbox Code Playgroud) 我试图对购物车的总价格应用折扣,但我只能按商品基价而不是全价购买.我用Google搜索并在wordpress stackoverflow中遇到了这篇文章:
$ amount = floatval(preg_replace('#[^\d.]#','',$ woocommerce-> cart-> get_cart_total())); preg_replace消除除十进制字符和冒号之外的所有内容.
如果你想用它做数学,floatval会将字符串中的值转换为数字值.
我尝试添加:
$amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
Run Code Online (Sandbox Code Playgroud)
和改变
$discount = round( (($discounting_amount / 100 ) * $this->amount)*-1, WC()->cart->dp);
Run Code Online (Sandbox Code Playgroud)
至
$discount = round( (($discounting_amount / 100 ) * $amount2)*-1, WC()->cart->dp);
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
Fatal error: Call to a member function get_cart_total() on a non-object in...
Run Code Online (Sandbox Code Playgroud) 如果用户提供促销代码,谷歌游戏商店是否有可能免费下载(或有一定折扣)的非免费应用程序?
我有两张桌子.一张Ids及其价格表,以及每张Id的第二张折扣表.在折扣表中,Id可以有很多折扣,我需要知道Id的最终价格.
查询它的最佳方式是什么(在一个查询中)?对于每个id的许多折扣,查询应该是通用的(不仅如下面的例子中提到的那样)
例如表一
id price
1 2.00
2 2.00
3 2.00
Run Code Online (Sandbox Code Playgroud)
表二
id Discount
1 0.20
1 0.30
2 0.40
3 0.50
3 0.60
Run Code Online (Sandbox Code Playgroud)
最后结果:
id OrigPrice PriceAfterDiscount
1 2.00 1.12
2 2.00 1.20
3 2.00 0.40
Run Code Online (Sandbox Code Playgroud) 关于stackoverflow的第一个问题......我很兴奋:)
目前,如果magento低于应用的目录价格规则,则使用特殊价格.如果目录定价规则使产品比特价便宜,则目录定价规则定义商店价格.
我正在寻找一种优雅的方法,使目录价格规则适用于特殊价格(另外).也许有一些商店配置呢?也许有一些整洁的观察者的方式?
非常感谢!
我们正在开发的应用程序将设置以下2个IAP:
12.99美元/月作为可自动更新的订阅.
$ 9.99 /月作为自动续订订阅(如果您输入了邀请码).
显然,如果用户在订阅之前输入邀请代码,我们可以使用价格较低的IAP ping Apple服务器.
但我们的问题是:我们(计划)允许用户随时输入邀请代码,包括他们已经是付费用户之后.这样我们就可以为我们的应用程序中的订户提供任何未来月份的折扣.
有没有人这样做过?这可能吗?等等...
2015年8月30日更新: 除非有人向我们提供其他方面的知识/能力,否则我们得出的结论是,这是不可能的.我们甚至联系了Apple,他们说他们最终没有这样的API.
话虽如此,我们采用以下方法:
如果用户在输入邀请代码之前订阅,则会向2个价格中的较高者收取费用.
如果用户在ALREADY订阅时输入代码,则必须取消订阅,然后重新订阅以获得较低价格点.
如果用户在输入邀请代码后订阅,则会按2种价格中的较低者收取费用.
2016年9月23日更新
苹果最近推出的自动续订订阅中的iTunes Connect中有一个名为Subscription Groups的东西.用户一次只能订阅一个组中的一个订阅.从而允许用户在"层"之间切换.对于将来遇到这个问题的人来说,这是一个可能的解决方案.
对于Ubercart:如何根据购买的任何和/或所有产品的数量折扣购物车中的所有产品?即,购买超过10种产品(任何产品组合并获得折扣).[所有产品清单价格为8.99美元...购买10件或以上,所有商品均打折至每件5.00美元]
3件衬衫 - 每件8.99件
5杯 - 每个8.99
2本书 - 每本8.99本
总项目 - 10个原始销售价格 - $ 89.90
鉴于购买的所有产品的数量> = 10,现在每种产品的价格降至每个5.00美元,因此:
折扣价和购物车现在看起来像这样:
3 - 衬衫 - 5.00每个5 - 杯 - 每个5.00 - 书 - 每个5.00
总项目 - 10和新(打折)总额为$ 50.00
我查看了以下模块,并且不相信它们是解决方案(有些只是有问题的):
uc_bulk_discount,uc_discounts_alt和uc_pricelist
仅供参考:测试站点目前位于http://www.drupal-sandbox.com
提前感谢您阅读详细说明以及您可以提供的任何建议!
例如
$_producte = Mage::getModel('catalog/product')->load(2974);
echo $_producte->getFinalPrice();
Run Code Online (Sandbox Code Playgroud)
插入到.phtml时我可以进入前端
但我无法在管理部分或自定义产品导出文件中获得最终价格(有折扣).
我在function.php
我的主题中有这个代码来显示价格后的百分比,它在WooCommerce v2.6.14中运行良好.
但是这个片段在WooCommerce 3.0+版本上不再起作用了.
我该如何解决这个问题?
这是代码:
// Add save percent next to sale item prices.
add_filter( 'woocommerce_sale_price_html', 'woocommerce_custom_sales_price', 10, 2 );
function woocommerce_custom_sales_price( $price, $product ) {
$percentage = round( ( ( $product->regular_price - $product->sale_price ) / $product->regular_price ) * 100 );
return $price . sprintf( __(' Save %s', 'woocommerce' ), $percentage . '%' );
}
Run Code Online (Sandbox Code Playgroud) 在WooCommerce中,如何根据购物车中的商品总数设置购物车折扣?
例如:
我搜索互联网但没有找到任何解决方案或插件可用.
谢谢.