WC_Email_Customer_Fulfillment_Deleted::maybe_init_fulfillment_for_previewprivateWC 10.1.0

Initialize fulfillment for email preview.

This method sets up a dummy fulfillment object when the email is being previewed in the admin.

Method of the class: WC_Email_Customer_Fulfillment_Deleted{}

Hooks from the method

Returns

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->maybe_init_fulfillment_for_preview( $order );
$order(WC_Order) (required)
The order object.

Changelog

Since 10.1.0 Introduced.

WC_Email_Customer_Fulfillment_Deleted::maybe_init_fulfillment_for_preview() code WC 10.7.0

private function maybe_init_fulfillment_for_preview( $order ) {
	/**
	 * Filter to determine if this is an email preview.
	 *
	 * @since 9.8.0
	 */
	$is_email_preview = apply_filters( 'woocommerce_is_email_preview', false );
	if ( $is_email_preview ) {
		// If this is a preview, we need to set up a dummy fulfillment object.
		$this->fulfillment = new Fulfillment();
		$this->fulfillment->set_items(
			array_map(
				function ( $item ) {
					return array(
						'item_id' => $item->get_id(),
						'qty'     => 1,
					);
				},
				$order->get_items()
			)
		);

		// Set the deleted status.
		$this->fulfillment->set_date_deleted( gmdate( 'Y-m-d H:i:s' ) );
	}
}