マストハブな、WORDPRESSプラグイン300選
http://mashable.com/2007/08/16/wordpress-god300-tools-for-running-your-wordpress-blog/
2007年のアーカイブなんで、ちょっと古いけどね;
なんせ人気プラグイン300選ですから。
バージョンアップしてるものもあるし、参考にはなるかも。
カテゴリー: CMS・ブログツール
http://mashable.com/2007/08/16/wordpress-god300-tools-for-running-your-wordpress-blog/
2007年のアーカイブなんで、ちょっと古いけどね;
なんせ人気プラグイン300選ですから。
バージョンアップしてるものもあるし、参考にはなるかも。
http://net.tutsplus.com/tutorials/wordpress/creating-a-custom-wordpress-plugin-from-scratch/
wordpressは今年に入って、国内でもかなり注目度が高い。
テーマやプラグインを色々探すことも多くなってきているが、自分でプラグインを開発するようなこともあるかもしれない。
そこで、スクラッチでWPプラグインを開発するチュートリアルの登場。
問題は、、、英語なんだよね;
でも、わかりやすく書かれているので、がんばって挑戦してみるのもアリ。
マルチリンガルのやり方は、大きく分けて2通り。
日本語で書いたエントリーを自動翻訳させるパターンが、その1つ。
でも、これだと、変な翻訳になってもノーサポート。なので、コーポレートサイトなどには適さない。
もうひとつが、エントリー、それぞれが、多言語で記述できるというもの。
この場合は、翻訳自体は、自分でやらないといけないけど、エントリーごとに、対応言語の有無を選べたり、まとめられる。こっちのほうが、使い勝手があるかな?
とりあえず、実験。
今回は、「qTranslate」というプラグインを使用して、管理画面のエントリーフォームをタブで切り替えて、それぞれの言語のエントリーを記述し、フロントページからは、言語切り替えリンクボタンで、表示を切り替えられるようにしようと思う。
まずは、WORDPRESSのプラグインディレクトリから、qTranslateをダウンロードして(http://wordpress.org/extend/plugins/qtranslate/)FTPでアップロードするか、WPの管理画面のプラグインメニューから検索して、ブログに取り入れる。
qTranslateプラグインを有効にしたら、プラグインの管理メニューから設定を行う。
設定→言語設定が、qTranslateの設定項目になる。先にプラグインを有効化した時点で、WPの管理画面は、一旦英語表記になると思うので、Setting→Language、ですね。
Language Code: ja
Flag: jp.png
Name: Japanese
Locale: ja_JP
Date Format: ※特にフォーマットを指定する場合はここも入力
Time Format:※特にフォーマットを指定する場合はここも入力
Not Available Message: Sorry, this entry is only available in %LANG:, : and %.
Default LanguageをJapaneseにする。
その他利用する言語を「enable」、使用しない言語は、「disable」に。
qTranslateは、そのままだと、日本語のエンコードをeuc-jpに解釈してしまい、設定によっては文字化けなどが起こる可能性があるため、言語ファイルを用意する。
/wp-content/languagesの中の、「ja.mo」ファイルをコピーして、「ja_JP.mo」という名称で保存。(「ja.mo」は、そのまま残す。)
これで、だいたいOK。
今度は、フロントページで、ユーザーが閲覧する表示言語を選択できるようにする。
ヘッダーやindex.phpテンプレートの、言語選択リンクボタンを表示させる適当な場所に下記のコードを埋め込む。ヘッダーのglobal_navi取得コードの前に入れるとよい。
<?php echo qtrans_generateLanguageSelectCode(‘both’); ?>
国旗のマークアイコンを表示させる場合は(‘image’)、テキストで「日本語」「ENGLISH」などと表示させる場合は(‘text’)、両方表示は(‘both’)を使用する。
以上。
もし、文字化けなどのエラーが出たり、詳しい設定で躓いた場合は、下記サイトが参考になりマスヨ。
http://formula1.gimlet301515.com/WordPress/?p=407
http://saqoosha.net/2009/01/06/1672/
そのほか、自動翻訳などを使いたい場合は、こういうプラグインもあり。
とりあえず、このエントリーは、↓の続き。
https://bton.papalabs.net/?p=1135
PAYPAL決済を導入するに当たって、EC-CUBEからPAYPALのテストサイトへつないで決済テストを行うやり方。
テストなんだよね。テストなんだけど、いっぱい設定とか準備があって、面倒なんだよね。。。
ここからは、英語ばんばんの海外サイトなので、本当のところ気が狂いそう・・・
とか言ってられないので、がんばりましょう!
1)PAYPALの「Developer Central」内の下記URLへアクセスし、
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_testing_sandbox
Sign Upメニューから、テスト用の新規アカウントを作成しましょう。
画面は英語だけど、基本的には通常のアカウント登録と同じなので、わからなくなったら、日本語の通常PAYPALサイトを参考にするとイイデスヨ。
アカウントを作ったらサンドボックスにログイン。別に本番アカウントのコピーでもOK。
左メニューで、「Sandbox」-「Home」
ページの真ん中の、Test Accounts 「Create a preconfigured buyer or seller account.」リンクから「Create a Sandbox Test Account」ページへ進む。
バイヤーとセラー両方のテストアカウントが必要なので、それぞれを1つずつ、2回登録する。
作成後、左メニューで「Sandbox」-「Test Accounts」をクリックすると、テストアカウントの確認ができるはず。「View Details」でテスト作成されたアカウントの詳細が確認できる。
クレジットカードや銀行の情報も作成されている。
表の中の、「Payment Review」と「Test Mode」をいずれも「Enabled」に変更しておきましょう。
ここまでできたら、いよいよテスト。
ページ右下の「Enter Sandbox Test Site」ボタンをクリックする。
すると、通常のPAYPALのページみたいなテストサイトがあら現れる。この画面に、先ほど作成した、バイヤーアカウントでログインすれば、購入者の動作確認ができるし、セラーアカウントでログインすれば、販売者の動作確認ができる。それぞれ、買い物をしたあと、画面に代金がどのように計上されるのか(できるのかできないのか、)確認すればいい。
さて、ここで、1つ問題が(ということでもないけど;)
前のエントリーでEC-CUBEに設定したのは、本番の設定。
つまり、テストをするためには、一時的に、
/data/class/pages/shopping/LC_Page_Shopping_Confirm.php
で接続するサイトをPAYPALの本番サイトからテストサイトのURLへ変更して、テストアカウントで接続させないといけない。
なので、先に編集した、L148~L155、テスト用には下記のようになります。
// 決済方法により画面切替
if($payment_type != “”) {
$_SESSION[“payment_id”] = $arrData[‘payment_id’];
header(“Location: ” . URL_SHOP_MODULE);
}else{
if($arrData[‘payment_id’] == ※payment_id) {
// 設定変更行して下さい ↑ if($arrData[‘payment_id’] == payment_id) {
$paypalURL = “https://www.sandbox.paypal.com/j1/cgi-bin/webscr?cmd=_xclick&” ;
$paypalURL .= “business=” . “テストアカウントに登録したメールアドレス” . “&” ;
// 設定変更行して下さい ↑$paypalURL .= “business=” . “paypalアカウントのメールアドレス” . “&” ;
$paypalURL .= “lc=JP&item_name=” . “商品名” . “&” ;
// 設定変更行して下さい ↑ $paypalURL .= “lc=JP&item_name=” . “商品名” . “&” ;
$paypalURL .= “invoice=” . $order_id . “&” ;
$paypalURL .= “currency_code=JPY&no_shipping=1&no_note=1&” ;
$paypalURL .= “shipping=” . $arrData[‘deliv_fee’] . “&” ;
$paypalURL .= “amount=” . ($arrData[‘payment_total’]-$arrData[‘deliv_fee’]) . “&” ;
$paypalURL .= “email=” . $arrData[“order_email”] . “&” ;
$paypalURL .= “first_name=” . urlencode(mb_convert_encoding($arrData[“deliv_name02”], “UTF-8”,CHAR_CODE)) . “&” ;
$paypalURL .= “last_name=” . urlencode(mb_convert_encoding($arrData[“deliv_name01”], “UTF-8”, CHAR_CODE)) . “&” ;// 郵便番号から市町村を得る
$city = $objQuery->get(‘mtb_zip’, ‘city’, ‘zipcode = ?’, $arrData[‘deliv_zip01’] . $arrData[‘deliv_zip02’]);
$paypalURL .= “address1=” . urlencode(mb_convert_encoding(str_replace($city, “”, $arrData[“deliv_addr01”]), “UTF-8”, CHAR_CODE)) . “&” ;
$paypalURL .= “address2=” . urlencode(mb_convert_encoding($arrData[“deliv_addr02”], “UTF-8”, CHAR_CODE)) . “&” ;
$paypalURL .= “city=” . urlencode(mb_convert_encoding($city, “UTF-8”, CHAR_CODE)) . “&” ;
$paypalURL .= “zip=” . $arrData[“deliv_zip01”] . “-” . $arrData[“deliv_zip02”] . “&” ;
$paypalURL .= “night_phone_b=(” . $arrData[“order_tel01”] . “)” . $arrData[“order_tel02”] . “-” . $arrData[“order_tel03”] ;header(“Location: ” . $paypalURL);
} else {
header(“Location: ” . URL_SHOP_COMPLETE);
}
}
PAYPALのURLをPAYPALのサンドボックスのURLに、PAYPALのアカウントをPAYPALのサンドボックスのアカウントに、それぞれ、一時的に変更しましょう~。
これで、LC_Page_Shopping_Confirm.phpをアップロードしたら、EC-CUBEで、決済方法にPAYPALを選んで、テスト決済してみる。
PAYPAL(サンドボックス)サイトで決済して、その後、自サイトへリダイレクトされて戻ってくる、という一連の動作ができれば、OK。何度か動作確認して問題なければ、本番に切り替える。
以上どす。
EC-CUBEにPAYPAL支払いを導入する。
まずは、PAYPALのWEBサイトで、ビジネスアカウント(代金の受取ができるアカウント)を取得する。ビジネスとプレミアアカウントの違いは、機能的にはあまりないが、ビジネスアカウントの場合、クレジットカードなどの決済名に社名(または店舗、団体名など)が使用できるので、ビジネスで決済したいのであれば、ビジネスアカウントを利用するほうが便利。
上級なテクだが、PAYPAL決済では、定期購読やギフト券の発行などにも対応することもできる。とりあえず、まずは、ベーシックにいくけども。。。
アカウントを作成&メール認証したら、「マイアカウント」→「個人設定」→「ウェブ ペイメントの設定」を表示し、
と設定する。
次に、
「マイアカウント」→「個人設定」→「言語のエンコード」で、
最後に「マイアカウント」→「個人設定」→「支払い受領設定」でクレジットカード利用名最上の名前をショップまたは会社の名前に設定する。
PAYPAL側での設定は一旦以上。
PAYPALでは、そのほかに、個別にPAYPALで決済したいお客様向けの決済案内メールを、請求書として送付したり(テンプレート設定ができる)PAYPALの決済画面をショップオリジナルの体裁に変更したり、色々と便利な機能が使える。
必須ではないが、あったほうがお客様にとって便利なオプションもあるので、研究してみるのもいいと思う。
さて、肝心のEC-CUBEでの設定を追加していく。
/data/class/pages/shopping/LC_Page_Shopping_Confirm.php
L148~L155(VER.2.4の場合)
// 決済方法により画面切替
if($payment_type != “”) {
$_SESSION[“payment_id”] = $arrData[‘payment_id’];
header(“Location: ” . URL_SHOP_MODULE);
}else{
if($arrData[‘payment_id’] == ※payment_id) {
// 設定変更行して下さい ↑ if($arrData[‘payment_id’] == payment_id) {
$paypalURL = “https://www.paypal.com/j1/cgi-bin/webscr?cmd=_xclick&” ;
$paypalURL .= “business=” . “アカウントに登録したメールアドレス” . “&” ;
// 設定変更行して下さい ↑$paypalURL .= “business=” . “paypalアカウントのメールアドレス” . “&” ;
$paypalURL .= “lc=JP&item_name=” . “商品名” . “&” ;
// 設定変更行して下さい ↑ $paypalURL .= “lc=JP&item_name=” . “商品名” . “&” ;
$paypalURL .= “invoice=” . $order_id . “&” ;
$paypalURL .= “currency_code=JPY&no_shipping=1&no_note=1&” ;
$paypalURL .= “shipping=” . $arrData[‘deliv_fee’] . “&” ;
$paypalURL .= “amount=” . ($arrData[‘payment_total’]-$arrData[‘deliv_fee’]) . “&” ;
$paypalURL .= “email=” . $arrData[“order_email”] . “&” ;
$paypalURL .= “first_name=” . urlencode(mb_convert_encoding($arrData[“deliv_name02”], “UTF-8”,CHAR_CODE)) . “&” ;
$paypalURL .= “last_name=” . urlencode(mb_convert_encoding($arrData[“deliv_name01”], “UTF-8”, CHAR_CODE)) . “&” ;// 郵便番号から市町村を得る
$city = $objQuery->get(‘mtb_zip’, ‘city’, ‘zipcode = ?’, $arrData[‘deliv_zip01’] . $arrData[‘deliv_zip02’]);
$paypalURL .= “address1=” . urlencode(mb_convert_encoding(str_replace($city, “”, $arrData[“deliv_addr01”]), “UTF-8”, CHAR_CODE)) . “&” ;
$paypalURL .= “address2=” . urlencode(mb_convert_encoding($arrData[“deliv_addr02”], “UTF-8”, CHAR_CODE)) . “&” ;
$paypalURL .= “city=” . urlencode(mb_convert_encoding($city, “UTF-8”, CHAR_CODE)) . “&” ;
$paypalURL .= “zip=” . $arrData[“deliv_zip01”] . “-” . $arrData[“deliv_zip02”] . “&” ;
$paypalURL .= “night_phone_b=(” . $arrData[“order_tel01”] . “)” . $arrData[“order_tel02”] . “-” . $arrData[“order_tel03”] ;header(“Location: ” . $paypalURL);
} else {
header(“Location: ” . URL_SHOP_COMPLETE);
}
}
こんな感じで!とりあえず、アップロードして、PAYPALの決済サイトへつながればOK。
さて、PAYPALのサイトでユーザーが決済完了すると、数秒でこちらのサイトへリダイレクトされて画面が戻ってくるようになっている。ここで注意しないといけないことは、リダイレクトされてくるタイミングで、こちらのDBでは、買い物完了という情報がPAYPALから送られてくる、ということだ。もし、短気なユーザーが「お買い物できたわ~。」と思って、ウインドウを閉じてしまったら、こちらには、決済情報はフィードバックされない;
これを解決する方法もあるのだが、ちょっと更にややこしいので、とりあえずは、ウインドウは閉じないでね、お願いね、とでも書いて、ユーザーに注意を促そう。。。
それでは、最後の仕上げ。
ソースができたら、テストを行う。ただし、PAYPALのサイトで実際に決済してしまうと、請求が来てしまう(!あたりまえ;)ので、先にテストをしておきたい。。。
PAYPALには、サンドボックスという便利なテスト機能があるので、それを利用してテストすることにする。
ここからが、英語ベースで結構面倒なんである・・・が、やっぱりお客様のお金を扱うので、ここは慎重に;
でも、長くなるので、エントリーを分けることにしまっす!→ここを見るべし
参考サイト:
http://eccube.seesaa.net/article/87548448.html
http://www.wiz.gr.jp/wordpress/82
http://blog.katsuma.tv/develop/paypal/
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_testing_sandbox