WooCommerce – get_order() не работает и возвращает нольPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 WooCommerce – get_order() не работает и возвращает ноль

Сообщение Anonymous »

Я создаю интернет-магазин с помощью WooCommerce и добавляю функцию, которая будет обновлять бонусные баллы в моей базе данных, в absract-wc-pay-gateway.php.

Вот что я делаю:
  • Сначала на странице оформления заказа пользователи нажимают кнопку «Оформить заказ». , а затем метод получит бонусные баллы пользователей и вычитает бонусные баллы с помощью get-total(), а затем обновит базу данных и перейдет на страницу благодарности.
Изображение

  • Затем страница благодарности получит бонусные баллы пользователя из базы данных. И я установил значение бонусных баллов на 2000. Таким образом, в этом случае бонусные баллы должны быть минус общим количеством баллов (50,00 долларов США)
Изображение


Вот мой код. Он будет запущен, когда пользователь нажмет кнопку разместить заказ:

Код: Выделить всё

global $woocommerce;
$order = new WC_Order($order_id);
$total = $order->get_total();
$bonusPoint -= (int)$total; //minus total price and calculate the latest bonus point

$updateSql = "UPDATE userdata02 SET bonusPoint ='" .$bonusPoint.  "' WHERE userID = 2147483647";

mysqli_query($link, $updateSql);// update to an int column

if(mysqli_query($link, $updateSql)) {
echo "Record updated successfully";
} else {
echo "Error update record: " . mysqli_error($link);
}
Вызов метода, когда пользователь нажимает кнопку размещения:

Код: Выделить всё

public function get_return_url( $order = null ) {

if ( $order ) {
//$message = "wrong answer";
//echo "alert('$message');";
$return_url = $order->get_checkout_order_received_url();
} else {
$return_url = wc_get_endpoint_url( 'order-received', '', wc_get_page_permalink( 'checkout' ) );
}

if ( is_ssl() || get_option('woocommerce_force_ssl_checkout') == 'yes' ) {
$return_url = str_replace( 'http:', 'https:', $return_url );
}

self::reducePoints();  //Call reducePoints();
return apply_filters( 'woocommerce_get_return_url', $return_url, $order );
}
Исходный код: сокращениеPoints() строки 89 из абстрактного-WC-Payment-Gateway.php

get_total() не работает и возвращает ноль.

Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/383 ... turns-zero
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»