在我的 PHP Symfony 应用程序中,我试图检索按修改日期过滤的 Woocommerce 订阅,但没有关于如何将“过滤器”参数与 API 一起使用的文档。 (https://prospress.github.io/subscriptions-rest-api-docs/#list-all-subscriptions)。现在我只能使用“之后”和“之前”进行日期过滤,这似乎使用订阅创建日期。
use Automattic\WooCommerce\Client;
use Automattic\WooCommerce\Admin\Notes\WooCommerceSubscriptions;
$wc_subscription = new Client($this->getParameter('woocommerce_url'), $this->getParameter('woocommerce_key'), $this->getParameter('woocommerce_secret'), ['version' => 'wc/v1',]);
$subs = $wc_subscription->get('subscriptions', ['page' => 1, 'per_page' => 100, 'filter' => ['date_modified' => '2021-02-01']]);
这会返回极高的记录数,这是不正确的,因为只有少数订阅已更新。
如何通过“date_modified”或订阅响应对象中的任何其他字段进行过滤。
答案 0 :(得分:0)
来自 WC 休息站控制器的这可能会有所帮助:
bot.snipes
您似乎可以在 WP_Query 之前使用“woocommerce_rest_shop_subscription_query”来调整参数。而且,由于您将请求作为参数获取,因此您可以根据所需的精确值进行调整。
请记住,WP_Query 日期查询需要在其中包含列值才能使用修改日期而不是发布日期。
/**
* Filter the query arguments for a request.
*
* Enables adding extra arguments or setting defaults for a post
* collection request.
*
* @param array $args Key value array of query var to query value.
* @param WP_REST_Request $request The request used.
*/
$args = apply_filters( "woocommerce_rest_{$this->post_type}_query", $args, $request );
$query_args = $this->prepare_items_query( $args, $request );