ホームページ >バックエンド開発 >PHPチュートリアル >WooCommerce 3 で商品の価格をプログラムで変更するにはどうすればよいですか?

WooCommerce 3 で商品の価格をプログラムで変更するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-08 03:24:10725ブラウズ

How Can I Programmatically Change Product Prices in WooCommerce 3 ?

WooCommerce のフックを介して商品価格を変更する 3

WooCommerce プラットフォームには、商品価格を変更するためのさまざまなフックが用意されています。 add_filter('woocommerce_get_normal_price') と add_filter('woocommerce_get_price') を使用して提示されたソリューションは単純な商品には機能しますが、バリエーション商品に関しては制限に遭遇します。

バリエーション商品の価格設定

バリエーション製品の価格を調整するには、次の更新されたフックを使用します。推奨:

  • シンプル、グループ化、外部製品:

    • woocommerce_product_get_price
    • woocommerce_product_get_normal_price
  • バリエーション:

    • woocommerce_product_variation_get_normal_price
    • woocommerce_product_variation_get_price
  • 変数製品範囲:

    • woocommerce_variation_prices_price
    • woocommerce_variation_prices_ Regular_price

プラグイン実装

プラグイン内でこれらのフックを実装するには、次の点を考慮してください:

add_filter('woocommerce_product_get_price', 'custom_price', 99, 2);
add_filter('woocommerce_product_get_regular_price', 'custom_price', 99, 2);

add_filter('woocommerce_product_variation_get_regular_price', 'custom_price', 99, 2);
add_filter('woocommerce_product_variation_get_price', 'custom_price', 99, 2);

add_filter('woocommerce_variation_prices_price', 'custom_variable_price', 99, 3);
add_filter('woocommerce_variation_prices_regular_price', 'custom_variable_price', 99, 3);

function custom_price($price, $product) {
    $multiplier = 2; // Adjust as needed
    return (float) $price * $multiplier;
}

function custom_variable_price($price, $variation, $product) {
    $multiplier = 2; // Adjust as needed
    return (float) $price * $multiplier;
}

テーマの実装

テーマを使用する場合-ベースのアプローチでは、functions.php に次のコードを含めます。ファイル:

add_filter('woocommerce_product_get_price', 'custom_price', 99, 2);
add_filter('woocommerce_product_get_regular_price', 'custom_price', 99, 2);

add_filter('woocommerce_product_variation_get_regular_price', 'custom_price', 99, 2);
add_filter('woocommerce_product_variation_get_price', 'custom_price', 99, 2);

add_filter('woocommerce_variation_prices_price', 'custom_variable_price', 99, 3);
add_filter('woocommerce_variation_prices_regular_price', 'custom_variable_price', 99, 3);

function custom_price($price, $product) {
    $multiplier = 2; // Adjust as needed
    return (float) $price * $multiplier;
}

function custom_variable_price($price, $variation, $product) {
    $multiplier = 2; // Adjust as needed
    return (float) $price * $multiplier;
}

追加のメモと機能拡張

  • 価格ウィジェット: 価格フィルター ウィジェットの最小値と最大値の操作については、次のフックの使用を検討してください: woocommerce_price_filter_widget_min_amount およびwoocommerce_price_filter_widget_max_amount.
  • 製品販売価格: 販売価格には特定のフックが存在します: woocommerce_product_get_sale_price、woocommerce_variation_prices_sale_price、woocommerce_product_variation_get_sale_price.
  • 価格キャッシュ: WooCommerce 3 のキャッシュされたバリエーションの価格を考慮する必要があります。価格キャッシュを効率的に処理するには、add_filter('woocommerce_get_variation_prices_hash') フィルターをお勧めします。

以上がWooCommerce 3 で商品の価格をプログラムで変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。