set( 'order.writer', static fn( Container $c ): OrderWriter => new OrderWriter( $c->get( 'extra.service' ), $c->get( 'context.factory' ) ) ); $c->set( 'order.display', static fn(): OrderDisplay => new OrderDisplay() ); $c->set( 'order.privacy', static fn(): Privacy => new Privacy() ); } /** * {@inheritDoc} * * @param Container $c Container. */ public function boot( Container $c ): void { $writer = static fn(): OrderWriter => $c->get( 'order.writer' ); $display = static fn(): OrderDisplay => $c->get( 'order.display' ); $privacy = static fn(): Privacy => $c->get( 'order.privacy' ); add_action( 'woocommerce_checkout_create_order_fee_item', static fn( $item, $fee_key, $fee, $order ) => $writer()->on_fee_item( $item, $fee_key, $fee, $order ), 10, 4 ); add_action( 'woocommerce_checkout_create_order', static fn( $order ) => $writer()->on_classic_order( $order ) ); add_action( 'woocommerce_store_api_checkout_update_order_meta', static fn( $order ) => $writer()->on_store_api_order( $order ) ); add_action( 'woocommerce_admin_order_data_after_shipping_address', static fn( $order ) => $display()->admin( $order ) ); add_action( 'woocommerce_email_order_meta', static fn( $order, $sent_to_admin = false, $plain_text = false ) => $display()->email( $order, $sent_to_admin, $plain_text ), 15, 3 ); add_action( 'woocommerce_order_details_after_order_table', static fn( $order ) => $display()->account( $order ) ); add_filter( 'wp_privacy_personal_data_exporters', static fn( $exporters ) => $privacy()->register_exporter( $exporters ) ); add_filter( 'wp_privacy_personal_data_erasers', static fn( $erasers ) => $privacy()->register_eraser( $erasers ) ); add_action( 'woocommerce_privacy_remove_order_personal_data', static fn( $order ) => $privacy()->anonymize( $order ) ); } }