2016-07-04 3 views
1

действия и фильтры. На моем WooCommerce сайте я получаю следующее сообщение, когда я удалить продукт из корзины:WooCommerce - unset "<product> удален извещение ..." на странице

"<product name>" removed. Undo? 

Глядя поверх исходного кода WooCommerce Я нашел условный оператор в class-wc-form-header.php как часть функции update_cart_action():

$removed_notice .= ' <a href="' . esc_url(WC()->cart->get_undo_url($cart_item_key)) . '">' . __('Undo?', 'woocommerce') . '</a>'; 

Но я не могу найти способ использовать его для устранения этого уведомления. У меня есть попробовать CSS решения, но это не сработало:

enter image description here

PS: что не может быть приведен фрагмент кода, который беспокоит меня, но его единственная, которую я обнаружил, что, кажется, имеет смысл.

Как я могу удалить это уведомление?

Спасибо.

ответ

1

Вы можете сделать это по-разному:

1. Замещение шаблона notices.php:
Вы первый (если это еще не сделано) скопировать WooCommerce templates папки внутри вашего активного детскую тему или тему, затем переименуйте ее woocommerce. Затем открыть/редактировать notices/notices.php и попытаться заменить код:

<?php 
/** 
* Show messages 
* ... Blabla .../... blabla ... 
* @version  1.6.4 
*/ 

if (! defined('ABSPATH')) { 
    exit; // Exit if accessed directly 
} 

if (! $messages){ 
    return; 
} 

?> 

<?php foreach ($messages as $message) : // Change your template code from here 
    if (strpos($message, 'removed') === false) : ?> 
    <div class="woocommerce-info"><?php echo wp_kses_post($message); ?></div> 
<?php endif; 
endforeach; ?> 

2. Использование крючков:

function remove_added_to_cart_notice() 
{ 
    $notices = WC()->session->get('wc_notices', array()); 

    foreach($notices['notices'] as $key => &$notice){ 
     if(strpos($notice, 'removed') !== false){ 
      $added_to_cart_key = $key; 
      break; 
     } 
    } 
    unset($notices['notices'][$added_to_cart_key]); 

    WC()->session->set('wc_notices', $notices); 
} 
add_action('woocommerce_before_single_product','remove_added_to_cart_notice',1); 
add_action('woocommerce_shortcode_before_product_cat_loop','remove_added_to_cart_notice',1); 
add_action('woocommerce_before_shop_loop','remove_added_to_cart_notice',1); 

3. Использование CSS (что-то вроде):

.woocommerce-cart .woocommerce-message { 
    display: none !important; 
} 

Литература:

+0

Они работали до совершенства! Большое вам спасибо, а также благодарю вас за то, что вы указали правильный способ редактирования файла notes.php, добавив каталог в дочернюю тему. –

0

мне пришлось изменить это, чтобы заставить его работать. В частности, поле массива является особым уведомление или, по крайней мере, сейчас.

$notices = WC()->session->get('wc_notices', array()); 
foreach($notices['notice'] as $key => &$notice){ 
    if(strpos($notice, 'whilst') !== false){ 
     $BadNotice_key = $key; 
     unset($notices['notice'][$BadNotice_key]); 
     WC()->session->set('wc_notices', $notices); 
     break; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^