2017-08-21 8 views
-1

Ich habe ein Problem mit dem folgenden Code, wenn ich die Preisvariable die Funktion nicht funktioniert, aber wenn ich einen Preis hardcode es funktioniert. (Beachten Sie, ich bin in einer Testfläche und haben keine Sorgen um Sicherheit)woocommerce override von Produkt

dies, down't Arbeit:

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]); 
    } 
} 

Wenn ich diese Zeile hinzufügen, und die Variable außer Kraft setzen, es funktioniert:

$priser[1] = 1000; 

Ich bin ziemlich verwirrt, was das Problem sein könnte.

Antwort

0

für alle anderen, die darüber stolpern könnten. Scheint, ich muss den variablen Preis in der Sitzung weitergeben, dann funktioniert es.

Sie können die Antwort hier finden: custom price on woocommerce product

Verwandte Themen