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.