Я пытаюсь установить значение «оплачено» в моей пользовательской таблице, когда платеж прошел успешно / клиент перенаправляется на страницу благодарности.
Я не уверен, что это достаточно безопасно, чтобы вставить «оплачено => 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
WooCommerce Проверьте, оплачен/обработан или завершен заказ ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1727932576
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");
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/53490957/woocommerce-check-if-order-is-paid-processing-or-completed[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия