👍

【WordPress】Contact Form 7 Cost Calculator Freeでセット割引を実装する方法

2023/03/09に公開

実装内容について

WordPressで良く使用されるお問い合わせフォームプラグイン【Contact Form 7】の拡張プラグインで、自動計算を可能にする【Cost Calsulator】があります。
https://ja.wordpress.org/plugins/cf7-cost-calculator-price-calculation/

この無料版で「商品グループAとBの双方に料金が発生していればセット割引を行いたい」という要望があり、その対応をした際の方法を紹介したいと思います。

無料版で対応できない記述

試してみたところ、上記のプラグインの無料版はifのネスト構文が使えませんでした。
ほかに、このプラグインの無料版で使えない記述(等符号関連)の情報などありましたら、お知らせ頂ければ嬉しいです。

実装例

それでは実装例です。
calculated-1:商品グループAの合計金額
calculated-2:商品グループBの合計金額
を表しています。

[calculated calculated-3 "calculated-1 + calculated-2"]
[calculated calculated-4 "if(calculated-1<1,0,1) ∔ if(calculated-2<1,0,2)"]
[calculated calculated-5 "calculated-3 - if(calculated-4>2,1000,0)"]

calculated-3:A+Bの合計を求めています。
calculated-4:条件を数値フラグとして扱って、その合計値で状態を示しています。
詳細は以下の通りです。

  • A・B共に0円:0
  • Aに金額あり・Bは0円:1
  • Aは0円・Bに金額あり:2
  • A・B共に金額あり:3

calculated-5:A+Bの合計値に、フラグの数値が3以上なら割引の数値を与える式です。

これで試したところ、無事に実装ができました。

終わりに

表計算ツールでifのネスト構文はよく使っていたので、今回もスマートに実装できるだろうと思っていたので少々時間を要してしまいました。
【状態を数値フラグで管理する】という手法も、すぐアイディアの候補として出しておけるようにしたいと思いました。

以上、ご参考になれば幸いです!

Discussion