Woocommerce Refund Email

前端 未结 2 1110
野的像风
野的像风 2020-12-06 08:39

I have done a vast amount of searching and although I have found users that have asked how to achieve the following no examples of working solutions to the best of my knowle

相关标签:
2条回答
  • 2020-12-06 08:44

    The main problem is that the woocommerce_order_status_refunded hook is not registered by default with the send_transactional_email callback, so you can't use the above method to send emails automatically when the order status is changed to Refunded.

    You can change that with the following:

    /**
     * Register the "woocommerce_order_status_refunded" hook which is necessary to
     * allow automatic email notifications when the order is changed to refunded.
     * 
     * @see http://stackoverflow.com/a/26413223/2078474
     */
    add_action( 'woocommerce_init', function() {
        add_action( 
            'woocommerce_order_status_refunded', 
            array( WC(), 'send_transactional_email' ),
            10, 
            10 
        );
    });
    

    Also make sure that you have enable it in the corresponding section in the Woo Settings -> Emails tab:

    Enabled

    By default the following actions are registered for automatic email notifications:

    woocommerce_low_stock
    woocommerce_no_stock
    woocommerce_product_on_backorder
    woocommerce_order_status_pending_to_processing
    woocommerce_order_status_pending_to_completed
    woocommerce_order_status_pending_to_on-hold
    woocommerce_order_status_failed_to_processing
    woocommerce_order_status_failed_to_completed
    woocommerce_order_status_completed
    woocommerce_new_customer_note
    woocommerce_created_customer
    

    Update:

    Good news, @helgatheviking just got her WooCommerce pull request merged (see the comments below).

    This means we should be able to use the new woocommerce_email_actions filter:

    add_filter( 'woocommerce_email_actions', function( $email_actions ) {
        $email_actions[] = 'woocommerce_order_status_refunded';
        return $email_actions;
    });
    

    in WooCommerce 2.3+.

    Similar should work for other non-default email actions, like woocommerce_order_status_cancelled.

    0 讨论(0)
  • 2020-12-06 08:50

    I think the problem is you are calling

    add_action( 'woocommerce_order_status_pending_to_processing_notification', array( $this, 'trigger' ) );
    

    Try calling:

    add_action( 'woocommerce_order_status_refunded', array( $this, 'trigger' ) );
    
    0 讨论(0)
提交回复
热议问题