2017-08-19 8 views
1

私はWordpressでfunction.phpファイルに挿入できる単一のPHP関数を作成しようとしています(WooCommerceプラグイン、Storefrontテーマを使用)。私は、それぞれが別々に達成しようとしている部分の1つを行うオンラインの2つのコードを見つけましたが、それらを一緒に組み合わせる方法はわかりません。免責条項私はPHPをとてもよく読み書きする方法を知らない。WooCommerceフィルタ:Sale Percent Off

この画像は、私が達成しようとしていることを明確にするのに役立ちます。左側はコードの最初の部分を使用してページの外観を表し、右側は両方のコードが組み合わされたときのページの見た目を表しています。製品の通常価格とその販売価格を計算し、顧客が受け取る割引を計算します。最終結果は、例えば以下のような文字列である。 "22%OFF"問題は、価格が表示された後にこの文字列が挿入され、販売バナー自体に挿入されないことです。

function woocommerce_saved_sales_price($price, $product) { 
$percentage = round((($product->regular_price - $product->sale_price)/$product->regular_price) * 100); 
return $price . sprintf(__('%s', 'woocommerce'), $percentage . '% OFF'); 
} 
add_filter('woocommerce_get_price_html', 'woocommerce_saved_sales_price', 10, 2); 

コードの2番目の部分は、実際に私が変更しようとしている販売のバナーを編集私はそれが他のフィルタが実現算出した割引を含めるために取得する方法がわかりません。

add_filter('woocommerce_sale_flash', 'wc_custom_replace_sale_text'); 
function wc_custom_replace_sale_text($html) { 
return str_replace(__('Sale!', 'woocommerce'), __('SALE! [INSERT % OFF OUTPUT HERE]', 'woocommerce'), $html); 
} 

答えて

1

私は、コードの2枚が

add_filter('woocommerce_sale_flash', 'wc_custom_replace_sale_text'); 
function wc_custom_replace_sale_text($html) { 
    global $product; 
    //$product = wc_get_product($product->get_id()); 
    $percentage = round((($product->get_regular_price() - $product->get_sale_price())/$product->get_regular_price()) * 100); 
    return str_replace(__('Sale!', 'woocommerce'), __('SALE! ', 'woocommerce').$percentage.'% OFF', $html); 
} 

がテストされるべきだと思うと

+0

は、この作品を確認することができ働いていました。素晴らしい仕事、大いに感謝! – JMendez

+0

幸運な私の友人:D –