注文ステータスを変更するとき(たとえば、保留中から処理完了キャンセル済み)にお客様にメッセージを送信する必要があります。 Rules でこれを行うにはどうすればよいですか?
ルールは間違いなくこれを行う方法です。
名前:注文ステータス更新タグ:React:イベント=コマース注文>既存のコマース注文を更新した後
次に、アクションを追加します。 システム>メールを送信
「To」の値をメールで送信します。 [commerce-order:mail]トークンを使用する
件名とメッセージを入力します。次に保存します。
更新:注文が更新されるたびにメールを送信しないようにするには、次のルールを設定します...
追加条件:データ比較。 Commerce-order:status = Completed
「AND」を追加します。
追加条件:データ比較。 Commerce-order-unchanged:status = Completed、ただしNEGATEを確認してください。
これにより、 PHPフィルター モジュールを有効にする必要がなくなります。
ルールだけでこれを行う方法を理解するのに完全に時間がかかりすぎましたが、これが私が働いているものです:
OR
AND
Data comparison
Parameter: Data to compare: [commerce-order:status], Data value (equals): Canceled
NOT Data comparison
Parameter: Data to compare: [commerce-order-unchanged:status], Data value (equals): Canceled
AND
Data comparison
Parameter: Data to compare: [commerce-order:status], Data value (equals): Processing
NOT Data comparison
Parameter: Data to compare: [commerce-order-unchanged:status], Data value (equals): Processing
追加のステータス更新が必要な場合は、それぞれを作成してラップし、ルールが何をチェックするかを認識できるようにする必要があります。完了した注文に対して完全にカスタムメッセージを送信する必要があるため、「完了」を省略しました。
Phpスニペットを使って精神的に考えさせてくれた@Colton Echolsに声をかけてください。
「既存のコマース注文を更新した後のイベント」を使用するルールを設定します。 「カスタムの実行PHPコード」という条件を追加します。次に、次のコードを追加します。
if("[commerce-order:status]" == "completed" && "[commerce-order-unchanged:status]" != "[commerce-order:status]") { return TRUE; } else { return FALSE; }
次に、メールアクションを設定できます。