woocommerce_valid_order_statuses_for_payment filter-hookWC 4.0.0

Filter the valid order statuses for payment.

Usage

add_filter( 'woocommerce_valid_order_statuses_for_payment', 'wp_kama_woocommerce_valid_order_statuses_for_payment_filter', 10, 2 );

/**
 * Function for `woocommerce_valid_order_statuses_for_payment` filter-hook.
 * 
 * @param array    $valid_order_statuses Array of valid order statuses for payment.
 * @param WC_Order $order                Order object.
 *
 * @return array
 */
function wp_kama_woocommerce_valid_order_statuses_for_payment_filter( $valid_order_statuses, $order ){

	// filter...
	return $valid_order_statuses;
}
$valid_order_statuses(array)
Array of valid order statuses for payment.
$order(WC_Order)
Order object.

Changelog

Since 4.0.0 Introduced.

Where the hook is called

WC_Order::status_transition()
woocommerce_valid_order_statuses_for_payment
WC_Order::needs_payment()
woocommerce_valid_order_statuses_for_payment
woocommerce/includes/class-wc-order.php 458
in_array( $status_transition['from'], apply_filters( 'woocommerce_valid_order_statuses_for_payment', array( OrderStatus::PENDING, OrderStatus::FAILED ), $this ), true )
woocommerce/includes/class-wc-order.php 1787
$valid_order_statuses = apply_filters( 'woocommerce_valid_order_statuses_for_payment', array( OrderStatus::PENDING, OrderStatus::FAILED ), $this );

Where the hook is used in WooCommerce

woocommerce/src/Blocks/Domain/Services/DraftOrders.php 43
add_filter( 'woocommerce_valid_order_statuses_for_payment', [ $this, 'append_draft_order_post_status' ] );