Отменить уведомление об удаленной корзине на странице корзины WooCommerce - PullRequest
0 голосов
/ 03 февраля 2019

Есть ли способ скрыть / удалить уведомление "Продукт удален. Отменить?"на странице корзины, когда клиент удалил товар из корзины?

Я пытался:

add_filter( 'woocommerce_cart_item_removed_title', '__return_null' );

, но это скрывает только название продукта, который был удален ...

Я не смог найти правый хук остальной части строки («удален» и «Отменить?»)

1 Ответ

0 голосов
/ 03 февраля 2019

Чтобы убрать уведомление «{item_name} removed. Undo?» на странице корзины, вы можете обмануть Woocommerce следующим образом:

add_action( 'template_redirect', 'null_removed_cart_item_message'  );
function null_removed_cart_item_message() {
    // Only on cart page
    if( ! is_cart() ) return;

    // Get the WC notices array stored in WC_Session
    $wc_notices = (array) WC()->session->get( 'wc_notices' );
    $found      = false; // Initializing

    // Check that we have at least one "success" notice type
    if( isset($wc_notices['success']) && sizeof($wc_notices['success']) ) {
        // Loop through "success" notices type
        foreach( $wc_notices['success'] as $key => $wc_notice ) {
            // Remove notices that contain the word "removed" from the array
            if ( strpos($wc_notice, 'removed') !== false ) {
                unset($wc_notices['success']);
                $found = true;
            }
        }
    }

    if( $found ) {
        // Set back the notices array to WC_Session
        WC()->session->set( 'wc_notices', $wc_notices );
    }
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Протестировано и работает.

Важно: В зависимости от языка установки вам может потребоваться заменить слово «удалено» в коде функции на то, которое удобно в вашей установкеязык.

...