2016-05-05 9 views
1

の価格にテキストを「買い物かごに入れます」。以下のコードで、私はテキストを変更することができます。これは正常に動作します。変更は、私はその製品の現在の価格にwoocommerceで私の「追加・トゥ・カート」ボタンのテキストを変更したい製品

add_filter('woocommerce_product_add_to_cart_text', 'woo_custom_cart_button_text'); 
function woo_custom_cart_button_text($button_text) { 
$button_text -> 'hello!'; 
return __($button_text, 'woocommerce'); 
} 

しかし、今、私は、製品の価格にそのテキストを変更したいです。私は次のコードを試してみました。行3を次のように置き換えます:

$button_text->get_price_html(); 

しかし、それは私にエラーをもたらします。どのようなアイデアは、この問題を解決する方法ですか?

+0

UPDATE '関数custom_woocommerce_product_add_to_cart_text($のBUTTON_TEXT){$ BUTTON_TEXT - > 'こんにちは!'; リターン__($ BUTTON_TEXT、 'woocommerce'); } 'は、エラーを解決し、今何のテキストボタンに表示 – Jelmer

答えて

0

試してみてください...

add_filter('woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text'); // 2.1 + 

function woo_custom_cart_button_text() { 
     $button_text = get_price_html(); 
     return __($button_text, 'woocommerce'); 

} 

あなたは、割り当てopperator(=)での$ BUTTON_TEXTを割り当てる必要があります。

それとも...

add_filter('woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text'); // 2.1 + 

function woo_custom_cart_button_text() { 
     global $post; 
     $product = get_product($post->ID); 
     $button_text = $product->get_price_html(); 
     return __($button_text, 'woocommerce'); 

} 
+0

' get_price_html() '関数ではないがありません。 ')(' $製品 - > get_price_html:それは、オブジェクト、元に作動しなければならないクラスメソッドです。だから、2番目のブロックが近いですが、私はそれがいくつかの狂ったボタンのテキストになることがわかった。プロダクトオブジェクトはフィルタ内で利用可能であり、受け入れられるargsの数を2に設定することで渡すことができます。最後に、 '$ button_text'が動的変数であるため、' __($ button_text、 'woocommerce');翻訳されません。 – helgatheviking

+0

外部製品を変更するための回答があるため、変更しようとしている製品のタイプはありますかhttp://stackoverflow.com/questions/28947203/woocommerce-display-price-on-add-to-cart-button-for -external-製品オン製品 – Scott

+0

OPは言いませんでした。テンプレートの上書きは常に可能ですが、フック/フィルタを使用する場合、WCの更新に関する問題が少なくなります。私はちょうどあなたの答えの問題を指摘していた。 – helgatheviking

2

あなたはapply_filters() 2に受け入れられた引数の数を設定することで、あなたの関数へ$productを渡す必要があります。リンクが表示されたテンプレートは、(価格HTMLはそれにhtmlタグを持っているので)

all the spansこのホット混乱の原因と結果のテキストをラップするesc_html()を使用しているため

add_filter('woocommerce_product_add_to_cart_text', 'woo_custom_cart_button_text', 10, 2); 
function woo_custom_cart_button_text($button_text, $product) { 
    return $product->get_price_html(); 
} 

しかし、これは問題になり

ので、私はリンク自体をフィルタリングする方が良いかもしれないと思う:

add_filter('woocommerce_loop_add_to_cart_link', 'woo_custom_cart_button_link', 10, 2); 
function woo_custom_cart_button_link($button_text, $product) { 
    return sprintf('<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s">%s</a>', 
     esc_url($product->add_to_cart_url()), 
     esc_attr(isset($quantity) ? $quantity : 1), 
     esc_attr($product->id), 
     esc_attr($product->get_sku()), 
     esc_attr(isset($class) ? $class : 'button'), 
     $product->get_price_html() 
    ); 
} 
関連する問題