WooCommerce Проверьте, оплачен/обработан или завершен заказPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 WooCommerce Проверьте, оплачен/обработан или завершен заказ

Сообщение Anonymous »

Я пытаюсь установить значение «оплачено» в моей пользовательской таблице, когда платеж прошел успешно / клиент перенаправляется на страницу благодарности.

Я не уверен, что это достаточно безопасно, чтобы вставить «оплачено => 1» сразу после того, как покупатель достиг страницы благодарности. Вот почему я хотел проверить, действительно ли заказ оплачен, завершен или обрабатывается.

Теперь я понял, что некоторые способы оплаты работают медленно? Когда я оформляю заказ через Klarna, мой метод работает и вставляет оплачено = 1, но когда я выбираю Paypal, мой метод умирает и возвращает: «БЫЛО НЕ ОПЛАЧЕНО». Но когда я обновляю страницу благодарности примерно через 30 секунд, это работает. Итак, я пришел к выводу, что order_status устанавливается недостаточно быстро? Есть ли более чистый способ, чем мой?

add_action('woocommerce_thankyou', 'ceb_order_complete', 10, 1);
function ceb_order_complete( $order_id ) {

if ( ! $order_id )
return;

// Getting an instance of the order object
$order = wc_get_order( $order_id );

if($order->is_paid() || $order->has_status('processing') || $order->has_status('completed')) {
global $wpdb;
$payID = WC()->session->get( 'payID' );
if(!empty($payID)) {
if(!$wpdb->update($wpdb->prefix."ceb_registrations", array("paid"=>1), array("payID"=>$payID))) {
die("ERROR IN PAYMENT COMPLETE");
}
}
} else {
die("WASNT PAID");
}
}


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

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

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

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

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

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