在 WooCommerce 中下订单后显示成功自定义通知

Display a success custom notice after Placing an Order in WooCommerce

我需要在结帐页面上检查付款是否成功并显示消息:'Your payment has been successful',然后重定向到感谢页面(由插件 Woo Product 针对每个产品定制工具)。我一直在尝试在 Woo 文档中找到挂钩,但到目前为止还没有成功。我的最新代码是:

add_action( 'woocommerce_after_checkout_validation', 'message_after_payment' );
function message_after_payment(){
  global $woocommerce;
  $order = wc_get_order( $order_id );
  if ( $order->has_status('processing') ){
    wc_add_notice( __("Your payment has been successful", "test"), "success" );
  }
}

如何实现?

提交订单(下订单)后,您无法在结帐页面上显示“成功”通知……您可以在“已收到订单(谢谢)”页面中执行此操作。同样在您的代码中,$order_id 未定义...

所以右钩子是 woocommerce_before_thankyou 使用 wc_print_notice() 函数代替:

add_action( 'woocommerce_before_thankyou', 'success_message_after_payment' );
function success_message_after_payment( $order_id ){
    // Get the WC_Order Object
    $order = wc_get_order( $order_id );

    if ( $order->has_status('processing') ){
        wc_print_notice( __("Your payment has been successful", "woocommerce"), "success" );
    }
}

代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。


补充: 显示自定义 html 消息而不是 Woocommerce 通知

只需替换代码行:

wc_print_notice( __("Your payment has been successful", "woocommerce"), "success" );

例如:

echo '<p class='cudtom-message"> . __("Your payment has been successful", "woocommerce"), "success" ) . '</p>';

您可以根据需要在短信周围添加自己的 html。