WC_Webhook::get_legacy_api_payload()privateWC 3.0.0

Get Legacy API payload.

Метод класса: WC_Webhook{}

Хуки из метода

Возвращает

Массив.

Использование

// private - только в коде основоного (родительского) класса
$result = $this->get_legacy_api_payload( $resource, $resource_id, $event );
$resource(строка) (обязательный)
Resource type.
$resource_id(int) (обязательный)
Resource ID.
$event(строка) (обязательный)
Event type.

Список изменений

С версии 3.0.0 Введена.

Код WC_Webhook::get_legacy_api_payload() WC 8.7.0

private function get_legacy_api_payload( $resource, $resource_id, $event ) {
	// Include & load API classes.
	WC()->api->includes();
	WC()->api->register_resources( new WC_API_Server( '/' ) );

	switch ( $resource ) {
		case 'coupon':
			$payload = WC()->api->WC_API_Coupons->get_coupon( $resource_id );
			break;

		case 'customer':
			$payload = WC()->api->WC_API_Customers->get_customer( $resource_id );
			break;

		case 'order':
			$payload = WC()->api->WC_API_Orders->get_order( $resource_id, null, apply_filters( 'woocommerce_webhook_order_payload_filters', array() ) );
			break;

		case 'product':
			// Bulk and quick edit action hooks return a product object instead of an ID.
			if ( 'updated' === $event && is_a( $resource_id, 'WC_Product' ) ) {
				$resource_id = $resource_id->get_id();
			}
			$payload = WC()->api->WC_API_Products->get_product( $resource_id );
			break;

		// Custom topics include the first hook argument.
		case 'action':
			$payload = array(
				'action' => current( $this->get_hooks() ),
				'arg'    => $resource_id,
			);
			break;

		default:
			$payload = array();
			break;
	}

	return $payload;
}