WooCommerce之后-更新功能不再起作用

时间:2017-04-13 作者:Pascal Schaible

我有个问题,我现在真的快死了。我把WooCommerce升级到了主要的3版,直接升级到了3.0.2。

完成后,更新数据库。到目前为止还不错。

我现在的问题是,我编写的函数似乎不再有效。它是这样的:

    add_action( \'woocommerce_before_calculate_totals\',\'calc_ferienspiele_discount\' );
function calc_ferienspiele_discount( $cart_object ) {
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$x=0;
$custom_price = 140; // This will be your custome price
foreach ( $cart_object->cart_contents as $key => $value ) {
    $target_product_id=$value[\'data\']->get_sku();
    for ($_i = 1; $_i <= $value[\'quantity\']; $_i++) {
        $x++;
        if ( $value[\'data\']->get_sku() == $target_product_id ) {
            if ($x>1) {
                $value[\'data\']->set_price = $custom_price;
                echo $value[\'data\']->get_sku();
                echo \'This works and get displayed\';
            }
        }
    }
}
}
我现在它可能有点马虎,但它所做的是,它检查,如果有几个项目具有相同的SKU。如果是这样的话,那就算了。当特定SKU中有1个以上的项目时,以下成本会降低。因此,如果商品在购物车中放了三次,第一次是100美元,另两次是80美元。

我可以跳到最后if 设定新价格的地方(使用echo), 但新的价格不会确定。我想有些东西从主要版本2改成了3,我想不出这里出了什么问题。花了几个小时才找到它。。。

你们知道怎么回事吗?

谢谢

1 个回复
SO网友:Pascal Schaible

终于做到了。随着WooCommerce的更新,我认为,定价的语法确实发生了变化。函数现在如下所示:

add_action( \'woocommerce_before_calculate_totals\', \'calc_ferienspiele_discount\' );
function calc_ferienspiele_discount( $cart_object ) {
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$x=0;
$custom_price = 140; // This will be your custome price
foreach ( $cart_object->cart_contents as $key => $value ) {
    $target_product_id=$value[\'data\']->get_sku();
    for ($_i = 1; $_i <= $value[\'quantity\']; $_i++) {
        $x++;
        if ( $target_product_id==\'01010101\' ) {
            if ($x>1) {
                $value[\'data\']->set_price($custom_price);
                echo \'This works and get displayed\';
            }
        }
    }
}
}

相关推荐

Block updates by Server

我有一个服务器,我想阻止所有Wordpress站点更新通知(超过150个)。我知道wp config中有一个选项。php,但我想阻止所有更新。我加入了hosts-api。wordpress。org,但它始终显示更新栏。