Automattic\WooCommerce\Internal\Admin\Emails

EmailListingRestController::recreate_email_postpublicWC 1.0

Handle the POST /settings/email/listing/recreate-email-post.

Method of the class: EmailListingRestController{}

No Hooks.

Returns

Array|WP_Error. Request response or an error.

Usage

$EmailListingRestController = new EmailListingRestController();
$EmailListingRestController->recreate_email_post( $request );
$request(WP_REST_Request) (required)
The received request.

EmailListingRestController::recreate_email_post() code WC 10.3.3

public function recreate_email_post( WP_REST_Request $request ) {
	$email_id = $request->get_param( 'email_id' );

	$generated_post_id = '';

	try {
		$generated_post_id = $this->email_template_generator->generate_email_template_if_not_exists( $email_id );
	} catch ( \Exception $e ) {
		return new WP_Error(
			'woocommerce_rest_email_post_generation_failed',
			// translators: %s: Error message.
			sprintf( __( 'Error generating email post. Error: %s.', 'woocommerce' ), $e->getMessage() ),
			array( 'status' => 500 )
		);
	}

	if ( $generated_post_id ) {
		return array(
			// translators: %s: WooCommerce transactional email ID.
			'message' => sprintf( __( 'Email post generated for %s.', 'woocommerce' ), $email_id ),
			'post_id' => (string) $generated_post_id,
		);
	}
	return new WP_Error(
		'woocommerce_rest_email_post_generation_error',
		__( 'Error unable to generate email post.', 'woocommerce' ),
		array( 'status' => 500 )
	);
}