Я пытаюсь установить бесплатный пробный период для элемента корзины в WooCommerce во время запроса добавления в корзину AJAX.Код, кажется, работает, когда в корзине есть один продукт подписки, но когда в корзине есть два или более одинаковых продукта подписки, бесплатная пробная версия также применяется ко всем этим продуктам, даже если код предназначен только дляизменение данных корзины для одного из продуктов.Код, который я использую ниже.Также $ job-> get_free_trial_length () определенно возвращает правильное значение.Любая помощь будет принята с благодарностью, так как я боролся с этим в течение некоторого времени!Спасибо.
ОБНОВЛЕНИЕ
При изменении бесплатного пробного периода для элемента корзины, похоже, также обновляется бесплатный пробный период продукта подписки, поэтому другие продукты также изменились.Поэтому мой вопрос: можно ли проводить бесплатные пробные версии на уровне товаров в корзине, а не на уровне продуктов?
/**
* Add the subscription package to the user's cart.
*
* @param int $job_id
* @param int $variation_id
* @return string
*/
function add_package_to_cart( $job_id, $variation_id ) {
$job = fcrm_get_job( $job_id );
$product_id = $job->get_linked_subscription_product_id();
$quantity = 1;
$cart_item_data = array(
'job_id' => $job_id
);
// Add to cart
$key = WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, array(), $cart_item_data );
// Set the free trial period
wcs_set_objects_property( WC()->cart->cart_contents[ $key ]['data'], 'subscription_trial_length', $job->get_free_trial_length() );
return $key;
}