Welcartでサンキューメール送信時に受注データの「注文確認メール」にチェックする処理

Posted on カテゴリー: タグ:

Welcartには受注管理画面に「メール・印刷フィールド」という管理画面から購入者にメールを送る仕組みがあります。
「キャンセルメール」「発送完了メール」などショップ運営者のタイミングで送れて、記録としても残ります。

ユーザーが商品を購入した際にサンキューメールが送られます。
サンキューメールを送った時は「注文確認メール」にチェックは入りません。
※「メール・印刷フィールド」はあくまでも管理画面からメールを送信した記録だからです。

受注データ編集 – メール・印刷フィールド – 注文確認メール

ショップ運営者の中には、サンキューメールで「注文確認メール」にチェックを入れてほしいという要望もあります。

下記がそのカスタマイズ。

テーマの「functions.php」に下記の内容を追記してください。

// サンキューメールをメールの進捗にチェックする処理
function my_usces_action_after_send_ordermail_to_customer($res1, $confirm_para, $entry, $data)
{
    global $wpdb;

    if (isset($data['ID']) && $data['ID'] != '') {
        $tableName = $wpdb->prefix . "usces_order";
        $order_id = $data['ID'];
        $checked = 'ordermail';

        $query = $wpdb->prepare("SELECT `order_check` FROM $tableName WHERE ID = %d", $order_id);
        $res = $wpdb->get_var($query);

        $checkfield = unserialize($res);
        if (!isset($checkfield[$checked])) $checkfield[$checked] = $checked;
        $query = $wpdb->prepare("UPDATE $tableName SET `order_check`=%s WHERE ID = %d", serialize($checkfield), $order_id);
        $wpdb->query($query);
    }
}

add_action('usces_action_after_send_ordermail_to_customer', 'my_usces_action_after_send_ordermail_to_customer', 10, 4);