2016-09-14 14 views
3

私は現在、Woocommerceに基づいてオンラインストアを準備していますが、ミニカートの外観に問題があります。特定の製品の名前が長すぎると、ミニカート(.cart_wrapperに適合しない)で問題が発生します。ミニカートで中間ダッシュを隠す(テーマfunctions.php)

私は、製品名の最も重要でない要素(繰り返し)を隠すことに決めました。私は次のコードを使用しました:

function wpse_remove_shorts_from_cart_title($product_name) { 
    $product_name = str_ireplace('premium', '', $product_name); 
    $product_name = str_ireplace('standard', '', $product_name); 

    return $product_name; 
} 
add_filter('woocommerce_cart_item_name', 'wpse_remove_shorts_from_cart_title'); 

そして素晴らしいです。製品名の例では:

Car Carpet VW (1999-2001) - PREMIUM 

私が得た:

Car Carpet VW (1999-2001) - 

今の私にとっての問題は、製品名の末尾に発生する中間ダッシュです。

このようにすると、ブラケット(年または生産を分けるもの)の中の中央ダッシュも削除されるため、上記の方法では削除できません。

私のPHPの知識は非常に基本的なものなので、私はあなたに質問します。名前の最後に中間ダッシュを隠すことができるタグがあるかどうか、既存のミドルダッシュブラケットの間。

どうすればいいですか?

答えて

1

はいネイティブのPHP関数で可能ですrtrim()

<?php 
    $string1 = 'Car Carpet VW (1999-2001) - PREMIUM'; 
    $string2 = 'Car Carpet VW (1999-2001) -'; 
    $string1 = rtrim($string1, ' -'); 
    $string2 = rtrim($string2, ' -'); 
    echo '$string1: '.$string1.'<br>'; // displays "Car Carpet VW (1999-2001) - PREMIUM" 
    echo '$string2: '.$string2.'<br>'; // displays "Car Carpet VW (1999-2001)" 
?> 

参考文献:PHP function rtrim()

+0

ありがとう、素晴らしい作品! – user3282071

1

PREMIUMまたはSTANDARDの置き換え機能で直接置き換えないのはなぜですか?このよう

function wpse_remove_shorts_from_cart_title($product_name) { 
    $product_name = str_replace('- premium', '', $product_name); 
    $product_name = str_replace('- standard', '', $product_name); 

    return $product_name; 
} 
add_filter('woocommerce_cart_item_name', 'wpse_remove_shorts_from_cart_title'); 

私はまたstr_replace()使用しないstr_ireplace()str_replace()ためには、大文字と小文字を区別しません。

+0

それは本当に作品ですので、私は今とても愚かに感じますが、この方法でそれを使用します。ありがとうございます。 – user3282071

関連する問題