1

Prestashopフォーラムでこの質問をしましたが、まだ回答がありません。

mailalertモジュールで使用される新しい注文メールにsagepayコードを追加できるようにする必要があります。

私が持っているのは;

// Filling-in vars for email
$template = 'new_order';
$subject = $this->l('New order');
$spvtxc = Db::getInstance()->ExecuteS("SELECT vendortxcode FROM `"._DB_PREFIX_."sagepay_transactions` WHERE id_cart = '$order->id_cart'");
...
$templateVars = array(
'{firstname}' => $customer->firstname,
'{lastname}' => $customer->lastname,
...
'{sagepay_no}' => $spvtxc,
...
 );

トランザクションをテストするたびに、$spvtxcは「ARRAY」を返します。私が試してみました;

$spvtxc = '5';

予想どおり、これはsagepay番号として5を返すので、変数が呼び出されて電子メールに追加されていると確信しています。そして、私は試しました。

$spvtxc = Db::getInstance()->ExecuteS("SELECT vendortxcode FROM `"._DB_PREFIX_."sagepay_transactions` WHERE id_cart = '2'");

したがって、これは$ spvtxcをそこに明確に存在する値に設定する必要があります(データベースに手動で追加しました)が、それでも「ARRAY」が返されます。

私が見逃したことを誰かが指摘できれば、それは非常に高く評価されます。

4

1 に答える 1

1

単一の値を返すだけでよいので、ExecuteSの代わりにgetValue関数を使用する必要がありました。

$spvtxc = Db::getInstance()->getValue("SELECT vendortxcode FROM `"._DB_PREFIX_."sagepay_transactions` WHERE id_cart = '$order->id_cart'");

これは値を返しました。

于 2012-06-22T12:36:26.973 に答える