Время для прочтения: 1 мин. 8 сек.

Автоматически удаляем просроченные купоны в WooCommerce

Купоны — это круто, кто не любит скидки? Существует много техник по созданию купонов для ваши пользователей, но у WooCommerce есть фатальный недостаток при работе с купонами — он автоматически не удаляет просроченные купоны. Попробуем это исправить.

Откройте functions.php вашей активной темы и добавьте следующий код в конец этого файла:

/**
 * Запланируем ежедневную задачу
 */
function schedule_delete_expired_coupons() {
	if ( ! wp_next_scheduled( 'delete_expired_coupons' ) ) {
		wp_schedule_event( time(), 'daily', 'delete_expired_coupons' );
	}
}
add_action( 'init', 'schedule_delete_expired_coupons' );

/**
 * Удалим в корзину просроченные купоны
 */
function delete_expired_coupons() {
	$args = array(
		'posts_per_page' => -1,
		'post_type'      => 'shop_coupon',
		'post_status'    => 'publish',
		'meta_query'     => array(
			'relation'   => 'AND',
			array(
				'key'     => 'expiry_date',
				'value'   => current_time( 'Y-m-d' ),
				'compare' => '<='
			),
			array(
				'key'     => 'expiry_date',
				'value'   => '',
				'compare' => '!='
			)
		)
	);

	$coupons = get_posts( $args );

	if ( ! empty( $coupons ) ) {
		$current_time = current_time( 'timestamp' );

		foreach ( $coupons as $coupon ) {
			wp_trash_post( $coupon->ID );
		}
	}
}
add_action( 'delete_expired_coupons', 'delete_expired_coupons' );

Этот сниппет автоматически переместит в корзину все просроченные купоны в вашем магазине. Для окончательного их удаления нужно будет произвести всего один клик — щёлкнуть кнопку «Очистить корзину».

Если вам лень делать клик, то и этот процесс можно автоматизировать, добавив true вторым параметром в функцию wp_trash_post, этим мы скажем удалять купоны в обход корзины:

wp_delete_post( $coupon->ID, true );

Удалённые таким способом купоны невозможно будет восстановить в будущем.

Так как в сниппете используется стандартный крон WordPress, убедитесь для начала, что он у вас не отключен.

Ссылки

Пошерить
Плюсануть
Отправить
Вотсап

Смотрите также

Комментарии