2016-07-31 10 views
-2

私はwoocommerceを使用しています。私はクイックビュー機能を代わりに使用するので、単一の製品ページへのハイパーリンクを削除したいと思います。Woocommerce - 単一の製品ページへのハイパーリンクの削除

ただし、カートとミニカートで生成されたリンクは、デフォルトの商品ページにリンクされていますので、削除します。私は、カートのページのために何をしたいか

私は、それ自体はPHPの専門家ではないけど、this post以下のいくつかの進歩を遂げた製品のサムネイルから、単一の製品ページへをハイパーリンクを削除します。それは私のプロダクトタイトルで働いたが、は私のプロダクトサムネイルのカートページで動かなかった。私はミニカートのために何をしたいのか

   <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からの抜粋:(フルミニ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 のためにあなたは置き換えるこの2行

を変更することができます

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

printf('%s', $thumbnail); 

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

またはあなたの子供のテーマ/ woocommerce /カート内に子テーマを使用している場合、あなたが作るcart.php /、仕事を得るためにフィルタを使用することができますとND

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); 

変更。ミニcart.phpで

はCHIL-テーマ/ woocommerce /カート/ミニカートであるべき

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

ページで

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

を交換してください。あなたが私を提供している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); 

を交換する必要がありますため、詳細-item.phpここ

です

echo apply_filters('woocommerce_order_item_name', $product_permalink ? sprintf('%s', $item['name']) : $item['name'], $item, $is_visible); 

ページのスクリーンショットを共有できるかどうかを教えてください。あなたのためにうまくいかない場合、または偽の注文を作成して確認できるようにすることができます。

問題に直面している場合はお知らせください。

+0

cart.phpへの編集は、魅力的に機能していました。元のPHPファイルに何か問題があったと思いますので、デフォルトのテンプレートで上書きして編集しました。大変ありがとうございました! ミニカートへの編集は何とかしませんでした。デフォルトのテンプレートで上書きしようとしましたが、カートページのように提案した変更が加えられましたが、製品のイメージとタイトルはまだハイパーリンクされています。 編集したミニカートのファイルをここに貼り付けてあります:http://codepen.io/scrltt/pen/KrBBwW – SCRLTT

+0

@SCRLTすでに役立っているなら、アップしてください。私はcodepenスニペットを調べています。 –

+0

@ SCRLTT答えが更新されました。確認してください。 –

関連する問題