Запуск функции возврата WooCommerce вызывает ошибку 500 - PullRequest
0 голосов
/ 16 октября 2018

У меня проблема со следующей функцией.

Я пытаюсь обновить настраиваемое поле при возврате денег клиенту в WooCommerce, но это вызывает сообщение об ошибке сервера 500 в моей консоли javascript при применении возврата, также желаемое изменение не требуетвлияет, поскольку настраиваемое поле не обновляется.

Может быть, я использую неправильные действия?

// Adjust custom field after refund

function adjust_tpv_after_refund( $order_id, $refund_id ) {
    $user_id = $order_id->get_user_id();
    $progress = get_the_author_meta( 'tier_progress_value', $user_id );
    $order = wc_get_order( $order_id );
    $refund_amount = $order->get_total_refunded();
    $adjusted_field = $progress - $refund_amount; 
    update_user_meta( $user_id, 'tier_progress_value', $adjusted_field );
}
add_action( 'woocommerce_order_fully_refunded', 'adjust_tpv_after_refund', 10, 2 );
add_action( 'woocommerce_order_partially_refunded', 'adjust_tpv_after_refund', 10, 2 );

Ошибка консоли:

Не удалось загрузить ресурс: сервер ответил со статусом 500 (Внутренняя ошибка сервера) / wp-admin / admin-ajax.php? _fs_blog_admin = true: 1

После нажатия кнопки возврата вращатель ajax вращается бесконечно.

1 Ответ

0 голосов
/ 16 октября 2018

Вы вызываете get_user_id () для $ order_id. Вам нужно изменить порядок первых трех строк и заменить $order_id->get_user_id() на $order->get_user_id()

$order    = wc_get_order( $order_id );
$user_id  = $order->get_user_id();
$progress = get_the_author_meta( 'tier_progress_value', $user_id );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...