woocommerce覆盖产品

时间:2017-08-21 08:40:53

标签: php wordpress woocommerce

我在制作价格变量时遇到以下代码的问题,但功能不起作用,但是当我硬编码价格时,它有效。 (注意我是在测试面孔,并且担心安全性)

这个,失败了:

function add_custom_price( $cart_obj ) {
    global $product, $woocommerce ,$wpdb;

    if ( isset( $_POST['fra'] ) ){
        $GLOBALS['$_fra'] = urldecode( $_POST["fra"] );
    } else {
        $GLOBALS['$_fra'] = "";
    }
    if ( isset( $_POST['til'] ) ){
        $GLOBALS['$_til'] = urldecode($_POST["til"]);
    } else {
        $GLOBALS['$_til'] = "";
    }
    if ( $GLOBALS['$_til'] !="" && $GLOBALS['$_fra'] !="" ){

        $t1 = urldecode( $GLOBALS['$_til'] );
        $t2 = urldecode( $GLOBALS['$_fra']);

        $objArray = $wpdb->get_results("SELECT $t1 FROM test_priser WHERE city = '$t2'");

        if ( isset($objArray[0]->$t1) ){
            $priser = explode("/",$objArray[0]->$t1);
            if ( !isset($priser[1]) ){
                $priser[1] = intval($priser[0]);
            }
        }

        echo "priser[1] = ".$priser[1]; //this outputs the expected value
    }

   if ( is_admin() && ! defined( 'DOING_AJAX' ) ){
       return;
    }
    foreach ( $cart_obj->get_cart() as $key => $value ) {
        $value['data']->set_price( $priser[1] );
    }
 }

当我添加此行并覆盖该变量时,它可以工作:

$priser[1] = 1000;

我很困惑这个问题可能是什么。

1 个答案:

答案 0 :(得分:0)

对于任何可能偶然发现此事的人。似乎我需要在会话中传递可变价格然后才能运作。

你可以在这里找到答案:custom price on woocommerce product