2016-07-31 4 views
-2

Я использую woocommerce, и я хотел бы удалить гиперссылки на страницы одного продукта, поскольку вместо этого я использую функцию быстрого просмотра, чтобы контент отображался в лайтбокс и не делал страницы одного продукта ненужными.Woocommerce - Удаление гиперссылок на отдельные страницы продуктов

Однако ссылки, созданные в тележке и мини-тележке, ссылаются на страницу продукта по умолчанию, поэтому я хотел бы удалить их.

То, что я хочу сделать для страницы корзины: Удалить гиперссылку на одной странице с миниатюрой продукта Я не эксперт PHP сам по себе, но сделал некоторый прогресс следующий this post. Он работал над моим названием продукта, но он не работал на моем продукте thumbnail на странице корзины.

Вот отрывок из моего cart.php:

   <td class="product-thumbnail"> 
        <?php 
         $thumbnail = apply_filters('woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key); 

         if (! $product_permalink) { 
          echo $thumbnail; 
         } else { 
          printf('%s', $thumbnail); 
         } 
        ?> 
       </td> 

       <td class="product-name" data-title="<?php _e('Product', 'woocommerce'); ?>"> 
        <?php 
         if (! $product_permalink) { 
          echo apply_filters('woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key) . '&nbsp;'; 
         } else { 
          echo apply_filters('woocommerce_cart_item_name', sprintf('%s', $_product->get_title())); 
         } 

         // Meta data 
         echo WC()->cart->get_item_data($cart_item); 

         // Backorder notification 
         if ($_product->backorders_require_notification() && $_product->is_on_backorder($cart_item['quantity'])) { 
          echo '<p class="backorder_notification">' . esc_html__('Available on backorder', 'woocommerce') . '</p>'; 
         } 
        ?> 
       </td> 

То, что я хочу сделать для мини-корзина Удалить гиперссылку на одной странице с миниатюрами продукта и продукта заголовка

и отрывок из моего мини-cart.php: (Полный мини-cart.php код here)

  <?php 
      foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) { 
       $_product  = apply_filters('woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key); 
       $product_id = apply_filters('woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key); 

       if ($_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters('woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key)) { 
        $product_name  = apply_filters('woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key); 
        $thumbnail   = apply_filters('woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key); 
        $product_price  = apply_filters('woocommerce_cart_item_price', WC()->cart->get_product_price($_product), $cart_item, $cart_item_key); 
        ?> 
        <li class="<?php echo esc_attr(apply_filters('woocommerce_mini_cart_item_class', 'mini_cart_item', $cart_item, $cart_item_key)); ?>"> 
         <?php 
         echo apply_filters('woocommerce_cart_item_remove_link', sprintf(
          '<a href="%s" class="remove" title="%s" data-product_id="%s" data-product_sku="%s">&times;</a>', 
          esc_url(WC()->cart->get_remove_url($cart_item_key)), 
          __('Remove this item', 'woocommerce'), 
          esc_attr($product_id), 
          esc_attr($_product->get_sku()) 
         ), $cart_item_key); 
         ?> 
         <?php if (! $_product->is_visible()) : ?> 
          <?php echo str_replace(array('http:', 'https:'), '', $thumbnail) . $product_name . '&nbsp;'; ?> 
         <?php else : ?> 
           <?php echo str_replace(array('http:', 'https:'), '', $thumbnail) . $product_name . '&nbsp;'; ?> 
          </a> 
         <?php endif; ?> 
         <?php echo WC()->cart->get_item_data($cart_item); ?> 

         <?php echo apply_filters('woocommerce_widget_cart_item_quantity', '<span class="quantity">' . sprintf('%s &times; %s', $cart_item['quantity'], $product_price) . '</span>', $cart_item, $cart_item_key); ?> 
        </li> 
        <?php 
       } 
      } 
      ?> 

Как миниатюра продукта, так и название продукта по-прежнему гиперссылки, несмотря на удаление тега <a href>.

Пожалуйста, помогите!

скриншот гиперссылкой название продукта и миниатюру enter image description here

+0

Можете ли вы разместить ссылку на свои страницы? –

ответ

0

Для cart.php Вы можете изменить эти две строки

заменить

printf('<a href="%s">%s</a>', esc_url($product_permalink), $thumbnail); 

с

printf('%s', $thumbnail); 

й

echo apply_filters('woocommerce_cart_item_name', sprintf('<a href="%s">%s</a>', esc_url($product_permalink), $_product->get_title()), $cart_item, $cart_item_key); 

с

echo apply_filters('woocommerce_cart_item_name', sprintf('%s', $_product->get_title()), $cart_item, $cart_item_key); 

или вы можете использовать фильтры, чтобы получить работу, если вы используете ребенок тему в ребенке тема/WooCommerce/корзине/cart.php сделать изменения.

В мини-cart.php

заменить

<a href="<?php echo esc_url($product_permalink); ?>"> 
    <?php echo str_replace(array('http:', 'https:'), '', $thumbnail) . $product_name . '&nbsp;'; ?> 
</a> 

с

<?php echo str_replace(array('http:', 'https:'), '', $thumbnail) . $product_name . '&nbsp;'; ?> 

страницы должны быть в детском лагере-темы/WooCommerce/корзина/мини-корзину.PHP

ссылка на эту страницу вы предоставили мне это страница заказа, для которого страница должна быть использована в заказ-детали-item.php

здесь вы должны заменить

echo apply_filters('woocommerce_order_item_name', $product_permalink ? sprintf('<a href="%s">%s</a>', $product_permalink, $item['name']) : $item['name'], $item, $is_visible); 

с

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

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

+0

Редакции в cart.php работали как обаяние, я думаю, что что-то не так с моим исходным файлом php, поэтому я переписываю его с шаблоном по умолчанию, делал изменения и работал! Большое вам спасибо за это! Редакции для мини-тележки не так или иначе. Я попробовал переписать с шаблоном по умолчанию и внес изменения, которые вы предложили, как я сделал для страницы корзины, но изображение и заголовок продукта по-прежнему являются гиперссылками. Я вставлял свой отредактированный файл minicart php здесь: http://codepen.io/scrltt/pen/KrBBwW – SCRLTT

+0

@SCRLTT, если он уже полезен, пожалуйста, повысьте его, я просматриваю фрагмент кода. –

+0

@SCRLTT ответ обновлен, проверьте его. –

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