2014-10-08 2 views
2

Мне нужно скрыть доставку наклейка на моей странице корзины woocommerce, но сохраните ее на странице оформления.Скрыть отгрузочную этикетку woocommerce

Я прочитал, что могу использовать is_cart() для таргетинга на тележку, но он не работал с каким-либо кодом, который я написал в functions.php.

Кто-нибудь знает, как это сделать?

-edit-

Я нашел следующий код, чтобы поместить в functions.php:

add_filter('woocommerce_cart_shipping_method_full_label', 'remove_shipping_label', 10, 2); 

function remove_shipping_label($label, $method) { 
    $new_label = preg_replace('/^.+:/', '', $label); 
    return $new_label; 
} 

Теперь мне нужно объединить код "если (is_cart)()" целевой , но я не понял, как это сделать.

+0

Привет, так что вам нужно, чтобы пользователь мог выбрать способ доставки в кассе страницы? но спрятаться на странице корзины? – Mauro

+0

Да, это правильно. Мне нужен пользователь, чтобы выбрать способ доставки на странице проверки. но скрыть отгрузочную этикетку (название способа доставки) на странице корзины. – Skurt

ответ

1

Телега страница загружается шаблон в папке плагина:

woocommerce/templates/cart/cart-shipping.php 

К overridethis шаблона вам необходимо скопировать этот файл в вашей теме по адресу:

/your_theme_folder/woocommerce/cart/cart-shipping.php 

Теперь вы можете сделать что-нибудь с ним (оставьте его пустым даже), и это повлияет только на страницу корзины. На странице проверки используется другой файл шаблона для создания полей доставки.

Источник: опыт + template overriding

+0

Спасибо за ответ Явор. Я обнаружил, что следующее в cart-shipping.php показывает стоимость доставки и стоимость доставки, но когда я удаляю эту строку, она удаляет ярлык и стоимость как на тележке, так и на чеке. Мне нужно удалить только ярлык на тележке. – Skurt

+0

Попробуйте следующее: Yavor

+0

Дал +1 для шаблона, переопределяющего бит (искал какое-то время), но ваша последняя строка о 'is_page ('checkout');' did not work .... –

0

Это то, что я должен работать, то есть для редактирования WooCommerce детали доставки шаблона. Старый вопрос, который я знаю, и мой ответ не на 100% связан с вопросом, но поиск не слишком помог мне с этой проблемой, поэтому я думал, что помогу любому, кто все еще смотрит ...

В строка $pos=strpos($wherefrom,"checkout");checkout должна быть именем (slug) вашей страницы оформления. Раздел, который позволяет вам выбирать способы оплаты, загружается ajax, поэтому все «is_page», «is_checkout» и т. Д. Возвращают пробелы, поэтому я прибегал к использованию http_referrer. Это результат слишком большого количества часов на одной «маленькой» проблеме. Этот код входит в файл cart-shipping.php, как описано в ответе Явура, и должен заменить существующий код между существующим <ul></ul>.

 <ul id="shipping_method"> 
      <?php 
      $wherefrom=wp_get_referer(); 
      $pos=strpos($wherefrom,"checkout"); 
      if ($pos!==false) 
      { 
       echo "<li>"; 
       foreach ($available_methods as $method) 
       { 
        if ($method->id==$chosen_method) 
        { 
         $mymethod=wp_kses_post(wc_cart_totals_shipping_method_label($method)); 
        } 
       } 
       echo $mymethod; 
       echo "</li>"; 
      } 
      else 
      { 
      ?> 
       <?php foreach ($available_methods as $method) : ?> 
       <li> 
        <input type="radio" name="shipping_method[<?php echo $index; ?>]" data-index="<?php echo $index; ?>" id="shipping_method_<?php echo $index; ?>_<?php echo sanitize_title($method->id); ?>" value="<?php echo esc_attr($method->id); ?>" <?php checked($method->id, $chosen_method); ?> class="shipping_method" /> 
        <label for="shipping_method_<?php echo $index; ?>_<?php echo sanitize_title($method->id); ?>"><?php echo wp_kses_post(wc_cart_totals_shipping_method_label($method)); ?></label> 
       </li> 
       <?php endforeach; ?> 
      <?php 
      } 
      ?> 

     </ul> 
0
function disable_shipping_calc_on_cart($show_shipping) { 
    if(is_cart()) { 
     return false; 
    } 
    return $show_shipping; 
} 
add_filter('woocommerce_cart_ready_to_calc_shipping','disable_shipping_calc_on_cart', 99); 
+1

Пожалуйста, добавьте некоторое объяснение, почему ваш ответ решает проблему OP. – Tom

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