ホーム > カスタマイズ

カスタマイズのアーカイブ

osCommerce 賞味期限切れ

私に連絡してくるお客様の中の割合からいうと、osCommerce alterを使用している人が断然多い。alterは、使いやすい機能が多くてその時点では最高だったけれど、バージョンアップがすでになく、SQLインジェクションなど修正されずにそのまま使用されているものが多い。

私の手元に来るころは、誰かの手によってカスタマイズされている。たいてい、osCommerce の公式サイトで紹介されているContributions(いまはCommunity Add-Onsらしい)が組み込まれている。日本語環境では完全に動作しないものや不完全な実装のものもあり、先にカスタマイズしたプログラマの代わりに修正するはめになる。

先日、会った中部地方のお客様は、alter版から本来の日本語版に戻しているということだった。alter版はサポートできないと業者に言われたそうだ。
しかし、osCommerceの現在の日本語版自体がそろそろ賞味期限切れのような気がする。日本語版osCommerceは正式にはPHP4だけで動作する。そのPHP4も、すでに昨年の12月31日でPHPの開発チームからサポートを打ち切られている(重大なセキュリティに関するバグ修正のみ2008年8月8日まで行う)。

最近、受ける相談で多いもののひとつに「osCommerceを使い続けていいのか、それとも、新しいオープンソースの通販システムを使用したほうがいいのか」というものがある。日本語版osCommerceユーザもそれらカスタマイズ業者も重要な岐路にさしかかっているようだ。

osCommerce カートに入らない

最近、お客様のメールにカートに商品が入らないという現象があるという相談を受けた。
このあたりを読んでみると、原因として、「サーチエンジン対策のURLを使用」をtrueにしていて、Googleのリンクをクリックして訪れたユーザにそのような現象が多いという。
http://lists.sourceforge.jp/mailman/archives/tep-j-general/2007-September/018467.html

私の経験した事例では、ログインするページによって、正常にログイン状態にならなかったことがあった。どちらも、カートに入らなかったり、ログインできない症状は確実に再現するということはないため修正が困難だ。

 確実に修正するには、クッキーとセッションの処理についてosCommerce内部を知る必要がある。osCommerceはクッキー内にセッションIDを格納する。このクッキーが正常に機能していないと、ログインも購入もできないことになる。カートに入らない現象は、GoogleにキャッシュされたセッションIDが原因だろう。無効なセッションIDで商品ページを表示しカートに入れるボタンをクリックしたが、その時点で無効なセッションIDを廃棄する作業をして、新たなセッションIDを生成するのでカートに入らないと購入者は感じるのだと思う。
無効なセッションIDに対する対策を行うことで解決するはずだ。PHPのセッションやクッキーに関する設定も確認しておきたい。

私の事例では、ログイン時に確実にクッキーを生成することで、ログインできるようにした。ついでに自動ログイン機能を追加したことで購入者の操作性も向上させた。

WordPress Search Everythingでタグを検索できない

最新のバージョンのSearch Everythingをご利用の場合は以下の修正は不要です。2010/07/25追記

WordPressは2.3以降、記事にタグをつけることができるようになった。
しかし、標準の検索機能ではこのタグまでは検索できない。

プラグインを探してみると、Search Everything というのがあった。検索範囲を広げる機能があり、このタグの検索にも対応している。
さっそく、ダウンロードしていつものように展開して、ディレクトリごとpluginディレクトリ下にアップロードした。管理画面で有効化したあと、タグを検索できるようにオプションを設定した。

ユーザ画面に戻り、漢字でタグを登録して、検索してみるが結果が表示されない。
日本語版を探したり、バージョンが高いものや、逆にひとつだけ落として試したみたが、まったく検索できない。海外で作成されたものにはよくあることなので、キーワードの扱いを確認することにした。

まずは、登録したタグがどこにあるかデータベースのテーブルの中を確認してみた。wp_termsに登録されていた。ここは問題なし。次に、プラグイン内の機能を利用してログを取得できるようにして、再度検索してみる。ログの中を見ると正常にSQLが生成されていて、問題なさそう。テーブルとSQLを見比べているうちに、slugを検索していることに気づいた。
小説は「%e5%b0%8f%e8%aa%ac」のように登録されている。半角英数字だと変換されないので slug内を検索してもうまくいくが、日本語では検索できない。原因がわかったので、search_everything.phpの227行目あたりのfunction SE4_search_tags内の検索用のSQLをslugからnameに変更した。

$where .= ” OR ( tter.slug LIKE ‘%” . str_replace(‘ ‘, ‘-’,$wpdb->escape($wp_query->query_vars['s'])) . “%’) “;
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
$where .= ” OR ( tter.name LIKE ‘%” . str_replace(‘ ‘, ‘-’,$wpdb->escape($wp_query->query_vars['s'])) . “%’) “;

再度、検索してみるとこんどはタグの中を検索して記事を表示できた。

ホーム > カスタマイズ

Page 20 of 32« はじめ...10...1819202122...30...最後 »
フィード
メタ情報

ページの上部に戻る