Automattic\WooCommerce\Internal\Orders
OrderAttributionBlocksController::extend_api
Extend the Store API.
Method of the class: OrderAttributionBlocksController{}
Hooks from the method
Returns
null. Nothing (null).
Usage
// private - for code of main (parent) class only $result = $this->extend_api();
OrderAttributionBlocksController::extend_api() OrderAttributionBlocksController::extend api code WC 10.3.3
private function extend_api() {
$this->extend_schema->register_endpoint_data(
array(
'endpoint' => CheckoutSchema::IDENTIFIER,
'namespace' => 'woocommerce/order-attribution',
'schema_callback' => $this->get_schema_callback(),
)
);
// Update order based on extended data.
add_action(
'woocommerce_store_api_checkout_update_order_from_request',
function ( $order, $request ) {
$extensions = $request->get_param( 'extensions' );
$params = $extensions['woocommerce/order-attribution'] ?? array();
if ( empty( $params ) ) {
return;
}
// Check if this order already has any attribution data to prevent duplicates attribution data.
if ( $this->order_attribution_controller->has_attribution( $order ) ) {
return;
}
/**
* Run an action to save order attribution data.
*
* @since 8.5.0
*
* @param WC_Order $order The order object.
* @param array $params Unprefixed order attribution data.
*/
do_action( 'woocommerce_order_save_attribution_data', $order, $params );
},
10,
2
);
}