作家直販サイトの構築・顛末記(6)

作家直販サイトの構築・顛末記(6)

作家直販サイトの構築・顛末記(5)の続き。

「販売作品(Sell Media)」をカスタマイズする(その2)

Sell Mediaは顛末記(1)で書いたように、基本的に欧米仕様であり、当初は日本語対応辞書ファイルがなかった。とりあえず日本語辞書を作ったので、日本語環境でも使えるようになったのだが、別の問題が残っていた。

それは通貨単位を日本円にしたときの、表示方法だ。

日本円の、小数点以下表示の問題

欧米の通貨は、小銭の単位と、桁が上がったとき単位がある。ドルであれば、下位の単位としてセントがあるように。そのため、ドル表記するときには、$100.00 のように小数点以下2位までを表示する。

▼デモサイトの会計ページ

デモサイトの会計ページ
デモサイトの会計ページ

日本でも、かつては「銭」の単位があったが、現在は金融業界で使われる以外には、「円」のみになっている。したがって、日常的な感覚としては、「100.00円」とはしない。小数点以下をつけることがないので、このような表示をされると、小数点を見落として、「1万円」に見間違ったりする。フォーラムで、これはまずいだろうという意見があった。

販売作品(Sell Media)」では、通貨単位を「¥」にすることはできても、小数点以下を消す設定までは配慮されていない。この点については、開発元に要望を出しているが、将来的なバージョンアップで対応してくれるかどうかはわからない。

そこで、php等のスクリプトをいじることにした。
その結果が、以下。

会計ページ
会計ページ

……と、このように表示する。
ここに至るのには、少々手間取った。個々の作品の単価を表示させている部分と、計算結果を表示させている部分が、異なるスクリプトでコントロールしていたからだ。

ちなみに、ここでの価格表示で、合計金額が一番大きく目立つように、追加CSSで指定している。

作品単価の小数点以下を消す

通貨単位の小数点以下を指定しているのは、phpファイルの中の以下の記述。

number_format( $price, 2, ‘.’, ” )
number_format( $total, 2, ‘.’, ” )
number_format( ( float ) $total, 2, ‘.’, ” )
number_format( $tax, 2, ‘.’, ‘,’ )
number_format( $shipping, 2, ‘.’, ‘,’ )

といった「number_format」の部分。ここで()内が「2」となっているのが、小数点以下の桁数。これを「0」にする。
該当ファイルは、

admin-items.php
admin-payments.php
class-cart.php
fields.php

もうひとつ、「sprintf」でも小数点を指定していた。

sprintf( ‘%0.2f’, ( float ) $new )
sprintf( ‘%0.2f’, ( float ) $sell_media_price )

などの記述だ。ここの「%0.2f」を「%0.0f」にする。
該当ファイルは、

admin-items.php
admin-payments.php
class-cart.php
fields.php
class-products.php

「sell-media」のフォルダから、テキストエディタでマルチファイル検索すると見つけやすい。

カートの計算結果の小数点を消す

カートの「小計」と「合計」は、計算結果を表示しているため、単価の表記とは違っていた。見つけるのに時間がかかってしまったが、コントロールはJAVAスクリプトにあった。

対象ファイルは、「sell_media.js」
その中の、

formatMoney( 2, ‘.’, ‘,’ ) )

という記述の「2」を「0」にする。全部で6カ所あるで、検索して探してほしい。

修正したファイルを、FTPでアップロードして、上書きすれば、価格表示から小数点以下が消える。
プラグインのファイルを書き換えたので、無造作にアップデートをすると修正部分は元に戻ってしまう。アップデートの告知があった場合には、注意するように。

「ログイン/ユーザー登録」ページの設置

サイト上で作品を購入する場合、ユーザー登録しなくても買えるシステムにはなっている。
なぜかというと、購入者の名前やメールアドレスは、PayPal決済したときに取得されるからだ。
PayPalでの決済が済むと、自動的にページが遷移して、ダウンロードページへと進み、購入したファイルをダウンロードできるようになっている。

しかし、ユーザー登録が必要な場合がある。
それは、ダウンロードURLを記したメールが届き、そこからダウンロードページに飛んだ場合だ。この場合、ユーザーがログインしていないと、ダウンロードを許可する相手として承認しない。

そのため、ユーザー登録するようにうながしている。
というわけで、簡単なユーザー登録ページを設置する。

▼「ログイン/ユーザー登録」ページ

ユーザー登録画面
ユーザー登録画面

ユーザー登録用のプラグイン「Simple WordPress Membership」を使用。固定ページにショートコードで埋め込んでいる。

ただし、デフォルトでは各項目の表示がアバウトすぎたので、注意書きも含めたものにした。
「ユーザー名」となっていたのを「ユーザー名(半角英数)」というように。修正したのは、このプラグインの日本語辞書ファイルだ。


今回はここまで。
次回は、有料Extensionについて。

作家直販サイトの構築・顛末記(7)につづく)


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です