質問: '\w \-\.\:'; というルールで ! preg_match('/^['.$this->product_name_rules.']+$/i'.(UTF8_ENABLED ? 'u' : ''), $items['name']) という制限がかかっています。 これだと日本のECシステムでは括弧「() 【】」や記号「* ×」といった表現が出来なくなってしまいます。 これらを制限する意味ってあるんでしょうか?無ければコメントアウトしちゃおうと思いますが、詳しい方がいらっしゃったら教えてください。 単純にカートに商品を追加するくらいでしか使っていませんので・・・ 宜しくお願いいたします。
回答: (カートのオブジェクト)->product_name_safe = false; と設定しておけばチェックされないようです。 デフォルトで製品名を英数字限定でチェックしてるだけなので、マルチバイト言語圏ではproduct_name_safe = false;とするか、$product_name_rulesの正規表現の表記を変更する必要があるかと思います。 ただproduct_name_safe = false;とするとフォームから受け取った入力値がそのまま使われるかもしれないので、SQLインジェクションやXSSに注意してください。