2016-04-04 11 views
0

私は、製品のデフォルトのカスタマイズテキスト入力に情報を保存している小さな「カスタマイズフォーム」を持つプレスタッシュセットアップを持っています。カスタマイズフォームのフィールドなどを追加するための完全なカスタムモジュールを作成する必要がなくなり、時間を節約することができました。フロントエンドとバックエンド(および電子メール)の製品カスタマイズをデコイル

現在、すべての入力が(JSON)シリアル化されると、このようなテキスト入力に長い文字列として入力:フロントエンドで

Client Customization: %5B%5B%7B%22name%22%3A%22trophy%5B1%5D%5Bline1%5D%22%2C%22engraving%22%3A%22Test%20Trophy%22%7D%2C%7B%22name%22%3A%22trophy%5B1%5D%5Bline2%5D%22%2C%22engraving%22%3A%22test%20trophy%22%7D%2C%7B%22name%22%3A%22trophy%5B1%5D%5Bline3%5D%22%2C%22engraving%22%3A%221111111%22%7D%5D%5D 

- カスタマイズされたデータが表示されたとき、私は復号化するためにPHPを使用することができます&適切に表示してください。

私はどこかでそれをグローバルに変更することができるので、表示し、そのPHPコードを追加する場所を見つけ出す必要はありませんか?

私は、どこにPHPコードを追加して送信された電子メールの文字列をデコードするのかわからないという問題を抱えています。そのため、長い醜い文字列がユーザーが入力したすばらしい数行のカスタマイズ。

これを処理する方法についてのご意見はありますか?デコードされた文字列を商品のカスタマイズにグローバルに割り当てることができる場所はありますか?

答えて

0

電子メールが送信される直前の文字列をデコードするPaymentModuleクラス、またはよりグローバルなアプローチのためのProductメソッド「getAllCustomizedDatas」を試すことができます。私はちょうどそれで単に「getAllCustomizedDatas」メソッドでProductクラスのオーバーライドを追加することができます

<?php 
class Product extends ProductCore 
{ 
    public static function getAllCustomizedDatas($id_cart, $id_lang = null, $only_in_cart = true, $id_shop = null) 
    { 
     $datas = parent::getAllCustomizedDatas($id_cart, $id_lang, $only_in_cart, $id_shop); 

     /* 
     * Iterate over $datas, you're looking for 
     * [id_product][id_product_attribute][id_address_delivery][id_customization][datas] 
     * Datas will contain an array of fields broken by their type. You can then decode 
     * the ones that need to be decoded and return the result: 
     */ 

     return $datas; 
    } 
} 
+0

、: そして、多くのことをテストし、もちろん:)

は、ここで第二のアプローチの迅速な案です右? – Hanny

+0

ええ、そうすることができるはずです。編集された答えを見る – Eihwaz

関連する問題