2016-07-04 4 views
1

アクションとフィルタに設定します。私は機能update_cart_action()の一部としてclass-wc-form-header.phpに条件文を発見したWooCommerce - unset "<product>削除通知..."カートのページ

"<product name>" removed. Undo? 

WooCommerceのソースコードを見ている:私は、ショッピングカートから製品を削除するとき、私のWooCommerceサイトでは、私は、次のメッセージが表示されます

$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

彼らは完璧に働いた!どうもありがとうございます。また、notices.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; 
    } 
} 
関連する問題