Я подключаюсь к событиям действия подписки woocommerce, и соединение кажется нормальным, так как я получаю запрос POST
, но полезная нагрузка содержит только следующее, тогда как я ожидаю, что полезная нагрузка заполнена, как когда веб-крючок уволен с момента размещения заказа. Есть идеи?
{
"action": "woocommerce_checkout_subscription_created",
"arg": {
"order_type": "shop_subscription"
}
}
Я достаточно компетентен в PHP, но я не знаю, с чего начать с WordPress. Любая помощь будет оценена
Обновление:
Итак, я нашел ответственный код для создания полезной нагрузки, которую я вижу, а именно:
/**
* Get WP API integration payload.
*
* @since 3.0.0
* @param string $resource Resource type.
* @param int $resource_id Resource ID.
* @param string $event Event type.
* @return array
*/
private function get_wp_api_payload( $resource, $resource_id, $event ) {
$rest_api_versions = wc_get_webhook_rest_api_versions();
$version_suffix = end( $rest_api_versions ) !== $this->get_api_version() ? strtoupper( str_replace( 'wp_api', '', $this->get_api_version() ) ) : '';
switch ( $resource ) {
case 'coupon':
case 'customer':
case 'order':
case 'product':
$class = 'WC_REST_' . ucfirst( $resource ) . 's' . $version_suffix . '_Controller';
$request = new WP_REST_Request( 'GET' );
$controller = new $class();
// Bulk and quick edit action hooks return a product object instead of an ID.
if ( 'product' === $resource && 'updated' === $event && is_a( $resource_id, 'WC_Product' ) ) {
$resource_id = $resource_id->get_id();
}
$request->set_param( 'id', $resource_id );
$result = $controller->get_item( $request );
$payload = isset( $result->data ) ? $result->data : array();
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;
}
Очевидно, что редактировать этот код неразумно, так как он будет снесен следующим обновлением woocomm. Как мне добавить необходимые параметры в полезную нагрузку?