【问题标题】:Running function on WooCommerce refund causes 500 error在 WooCommerce 退款上运行功能会导致 500 错误
【发布时间】:2018-10-16 17:20:32
【问题描述】:

我遇到了以下函数的问题。

我想要做的是在 WooCommerce 中向客户退款时更新自定义字段,但它会在我的 javascript 控制台中导致应用退款时出现 500 服务器错误通知,并且所需的更改也不会生效,因为自定义字段未更新。

也许我使用了错误的动作挂钩?

// 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 微调器会不停地旋转。

【问题讨论】:

    标签: php wordpress woocommerce hook custom-fields


    【解决方案1】:

    您在 $order_id 上调用 get_user_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 );
    

    【讨论】:

    • 完美运行!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多