Эффективные методы удаления продуктов из брошенной корзины в WordPress с помощью PHP

Товары, оставленные в корзине, могут существенно повлиять на успех сайта электронной коммерции. Когда клиенты добавляют товары в корзину, но не могут совершить покупку, важно удалить эти брошенные товары, чтобы обеспечить точное управление запасами и улучшить общее впечатление от покупок. В этой статье блога мы рассмотрим несколько методов удаления брошенных товаров из корзины в WordPress на примерах кода PHP.

Метод 1: удалить товары из брошенной корзины из базы данных

global $wpdb;
$wpdb->query(
    $wpdb->prepare(
        "DELETE FROM {$wpdb->prefix}woocommerce_sessions WHERE session_data LIKE %s",
        '%' . 'your_cart_session_key' . '%'
    )
);

Объяснение: этот метод напрямую удаляет товары из брошенной корзины из базы данных WordPress, запрашивая таблицу woocommerce_sessions. Он удаляет все данные сеанса, связанные с корзиной, определенной сеансовым ключом.

Метод 2: используйте функцию WooCommerce для очистки корзины

function remove_abandoned_cart_products() {
    if (class_exists('WooCommerce')) {
        WC()->cart->empty_cart();
    }
}
add_action('wp_logout', 'remove_abandoned_cart_products');

Объяснение: этот метод использует встроенные функции плагина WooCommerce для очистки корзины при выходе пользователя из системы. При добавлении перехватчика действия к событию wp_logoutкорзина очищается, а все брошенные товары удаляются.

Метод 3. Удаление товаров из брошенной корзины при оформлении заказа

function remove_abandoned_cart_products( $order_id ) {
    $order = wc_get_order( $order_id );
    $items = $order->get_items();

    foreach ( $items as $item ) {
        $product_id = $item->get_product_id();
        wc_delete_product_transients( $product_id );
    }
}
add_action( 'woocommerce_order_status_completed', 'remove_abandoned_cart_products' );

Объяснение: этот метод удаляет брошенные товары из корзины после завершения заказа. Подключаясь к событию woocommerce_order_status_completed, код извлекает заказанные товары и удаляет их временные элементы, фактически удаляя их из корзины.

Метод 4. Выполните запланированное задание по удалению оставленных продуктов

function remove_abandoned_cart_products() {
    global $wpdb;
    $query = "DELETE FROM {$wpdb->prefix}woocommerce_sessions WHERE session_expires < %d";
    $wpdb->query(
        $wpdb->prepare(
            $query,
            time()
        )
    );
}
add_action( 'wp', 'schedule_remove_abandoned_cart_products' );
function schedule_remove_abandoned_cart_products() {
    if ( ! wp_next_scheduled( 'remove_abandoned_cart_products' ) ) {
        wp_schedule_event( time(), 'daily', 'remove_abandoned_cart_products' );
    }
}

Объяснение: этот метод устанавливает запланированную задачу с использованием системы WordPress Cron для регулярного удаления продуктов, оставленных в корзине. Функция remove_abandoned_cart_products()запускается ежедневно и удаляет все сеансы корзины, срок действия которых истек, что определяется временем истечения сеанса.

Удаление брошенных товаров в корзине имеет решающее значение для поддержания эффективности и удобства веб-сайта электронной коммерции. Внедрив один или несколько из этих методов на своем сайте WordPress с помощью кода PHP, вы сможете эффективно управлять и оптимизировать свою систему корзин. Независимо от того, решите ли вы удалить их непосредственно из базы данных, очистить корзину при выходе пользователя из системы или удалить их после завершения заказа, эти методы помогут повысить производительность вашего веб-сайта и улучшить качество покупок для ваших клиентов.