2017-02-20 25 views
1

私はワードプレスサイトを持っており、woocommerceなどを使用しています。商品ページのバックオーダーメッセージを「2〜4週間分私は問題を抱えている "アイテム"。WooCommerceバックオーダーメッセージを変更する

また、ショッピングカートのページに同じまたは類似のメッセージを表示し、通常、商品名の下にバックオーダーメッセージが表示されるようにしたいとします。

また、私の好みではなく、バックオーダーのメッセージをカートのページから完全に隠しても、商品ページには表示されます。

私は、プラグインを使用してPHPコードを入力しています。これは、子供のテーマを使用するのではなく、他のものを使用することです。私は通常okを管理しますが、これを完全に困惑しました。私はこの昨日、何時間も過ごし、私のサイトとすべてをクラッシュさせました!笑...

私はそれが私のサイトにはるかにプロフェッショナルな外観を与えると思います。

私のサイトのバックオーダーの商品へのリンクは以下の通りですので、私が探しているものを正確に見ることができます。私は...理論的には簡単なものでなければならない何かでイライラし始めているよう

https://ascentsofscotland.co.uk/product/cormag-celtic-bangle/

すべてのヘルプは非常にこれを高く評価され(私はそれが実際にとにかくwoocommerceでカスタマイズ可能な一部であるべきだと思います!)

あらかじめ天才の皆さんに感謝します!

ステュー

答えて

3

私はあなたがwoocommerce_get_availability_textをフィルタリングする必要があると思います。これをテーマのfunctions.phpまたはサイト固有の「スニペット」プラグインに追加します。

function so_42345940_backorder_message($text, $product){ 
    if ($product->managing_stock() && $product->is_on_backorder(1)) { 
     $text = __('Please allow 2 – 4 weeks for delivery of this item', 'your-textdomain'); 
    } 
    return $text; 
} 
add_filter('woocommerce_get_availability_text', 'so_42345940_backorder_message', 10, 2); 
+0

これのおかげでは...残念ながら、それは動作しませんでした。コピーして貼り付けて追加しましたが、バックオーダーメッセージはサイトのすべての領域でまったく同じです。他のアイデア? – Stu

+0

あなたのテーマはそのメッセージをハードコーディングしていますか?テンプレートオーバーライドはありますか?それらを一時的に無効にすることができますか(WooCommerce->システムステータス>ツール>テンプレートデバッグモード)。テーマを完全に切り替えるのはどうですか?私はフィルタが2.6.14で利用可能であることを再確認したので、これは(理論的に)うまくいくはずです。 – helgatheviking

+1

私はプラグインを使ってArthur Gareginyanのコード(My Custom Functions)を入力しています。コードをコピーして貼り付けるだけで、私が必要としている他のすべての作業にはうまくいきました。私はMystileのテーマでこのサイトを自分で構築しましたが、私はまだ自分の初心者を少し考えています。何か他のことをする必要がありますか?コードをどこか別の場所に入力してください。 – Stu

0

ここでは、すべての製品ページやカート(私が代わりのfunctions.phpファイルをいじりのこれを処理するための無料「コードスニペット」プラグインを使用)の両方で動作するものである:

function alt_message() { 
    return "This item may take 3-4 weeks to deliver"; 
} 

function backorder_text($availability) { 
$altmessage = alt_message(); 
foreach($availability as $i) { 
$availability = str_replace('Available on backorder', $altmessage, $availability); 
} 
return $availability; 
} 
add_filter('woocommerce_get_availability', 'backorder_text'); 


function woocommerce_custom_cart_item_name($_product_title, $cart_item, $cart_item_key) { 
$altmessage = alt_message(); 
    if ($cart_item['data']->backorders_require_notification() && $cart_item['data']->is_on_backorder($cart_item['quantity'])) { 
$_product_title .= __(' - '. $altmessage, 'woocommerce') ; 
} 
return $_product_title; 
} 
add_filter('woocommerce_cart_item_name', 'woocommerce_custom_cart_item_name', 10, 3); 
あなたはCSSのコードを追加していない場合、それは動作しません:

はまた、あなたの子テーマのstyle.cssのファイル

.backorder_notification{ 
display: none; 
} 
.backorder_notification.custom{ 
display: block; 
} 

PSに以下のCSSコードを追加します。

にクレジット:http://www.northmore.net/change-backorder-text-woocommerce/

関連する問題