WordPressのテーマ Twenty Elevenの横幅を広げる

ちょっと大きめのウィジェットを右サイドバーに設置するとはみ出たため全体の横幅を広げました

$ vim wp-content/themes/twentyeleven/style.css
[css]
# page {
max-width: 1000px;
}
[/css]
を大きくすれば大きくなります

ブラウザのキャッシュに気をつけてスーパーリロード(Chromeならshift+F5)したら反映されてました

WordPressの子テーマ用にPHPを変更する

以前
WordPressにシェアボタンを用意する過程を公開
で、子テーマを作成しましたがPHPの修正が手抜きでした

テーマのアップデートをしたら案の定、修正が飛んでしまったのでやり直し..

フォルダ構成では
wp-content/themes/twentyeleven
wp-content/themes/twentyeleven-child

twentyeleven-childのフォルダに
style.cssをおいて、twentyelevenを継承するようにしたらCSSはOKでした

PHPも同様、同じファイル名で存在させれば子側を読み込みます(function.php以外)

content-single.phpを変更してたので、
アップデートして新しくなったcontent-single.phpをコピー


$ cp wp-content/themes/twentyeleven/content-single.php wp-content/themes/twentyeleven-child/content-single.php

子テーマのcontent-single.phpを修正、でバージョンアップ、かつ、以前の仕様に戻せました

次、アップデートしたら子側は手動アップデートでしょうか..
もっといい方法がある気がします..

heteml上のEC-CUBEにJ-Paymentのクレジット決済を追加する

EC-CUBEにクレジット決済を追加してみました
いろいろありますが、今回はJ-Paymentを使いました

J-Paymentの導入方法はいくつかあります
EC-CUBEなのでEC-CUBEモジュールを使いました

ちなみに他には
HTMLリンク方式
HTMLにリンクを埋め込むだけ
リンクをクリックするとJ-Paymentが用意しているページへ飛んでクレジット情報を入力する流れです

Gateway方式
クレジット情報をいれるフォームを自作、自由なデザインでできる

があります

J-Paymentに申し込む

まずはJ-Paymentの審査を通らないと行けないので申し込みます
10日以上かかるみたいです
申し込みの流れ http://www.j-payment.co.jp/service/payment/flow.html
審査が通れば、J-Paymentの店舗IDが付与されアカウントがもらえます

hetemlでSSLを購入

サーバーにSSLを導入します
手頃な証明書を買ってきて..と思いましたがhetemlでは他社の証明書は利用できません
hetemlで申し込みました
http://heteml.jp/support/manual/d-ssl/
DNSへ反映されるのに最大72時間だそうです
2日くらい待つと、httpsでもアクセスできるようになってました

EC-CUBEのSSLのアドレスを変更

SSLアドレスをhttpsにしてなければ設定します
hetemlにSSHでログイン、phpファイルを修正します
SSHのログインは、hetemlの管理者ページでSSHアカウントを作成して行います

$ vi web/data/config/config.php
define(‘HTTPS_URL’, ‘https://sample.co.jp/eccube/’);
というふうに、アドレスをhttpsにします

J-Paymentの設定

アカウントがもらえるとJ-Paymentのコントロールパネルへアクセスできるようになります
設定>決済システムの設定、決済ゲートウェイ&CTI決済設定、決済データ送信元IPにhetemlのサーバーのIPアドレスを設定します
このページのシステムモードがテストモードであれば、決済は発生しません

hetemlのサーバーのIPアドレスは、hetemlの管理ページ、アカウント情報に記載されています

EC-CUBEのJ-Paymentモジュールを購入

EC-CUBEオーナーズストアより導入するサイトに紐づいたアカウントでEC-CUBEバージョンにあったものを購入します
でしたが、今はEC-CUBEオーナーズストアになくなり、J-Payment側から直接もらうようになったようです(なぜでしょう?)

EC-CUBEをメンテナンス状態にする

クレジット機能導入時に不備が起きたりするとまずいので、自分以外は操作できないようにします
WEBサーバーで.htaccessを使って、制限しようと思いましたがhetemlでできなかったのでhetemlのアクセス制限を利用しました
Basic認証をかけるようですが、なんだか日本語が文字化けするので英語で設定しました

EC-CUBEのプラグイン導入

EC-CUBEの管理者ページへログイン
オーナーズストア>モジュール管理
モジュール取得、をクリック、J-Payment決済モジュールをダウンロードします
インストールできたら、設定リンクをクリック
J-Paymentから付与された店舗IDを入力、使うものにチェックを入れていきます
eccube-module

EC-CUBEの設定変更

支払方法設定

基本情報設定>支払方法設定、でクレジットカード決済の表示名など設定します
eccube-payment-config-detail

配送方法設定

基本情報設定>配送方法設定、で取扱い商品種別のクレジットカード決済にチェックをつけます
eccube-delivery-configeccube-delivery-config2

決済のテスト

EC-CUBEでダミー商品とダミー商品を購入するためのテストアカウントを用意して、購入してみます
使うカード情報はJ-Paymentに聞いたダミーのカード番号で行います
(なんでもいいのかも)

うまくいけば、ダミー商品は非公開か削除かします

本番運用開始

J-Paymentへ本番運用する連絡をいれ、設定変更してもらってコントロールパネルへアクセス、設定>決済システムの設定、システムモードをテストモード→本番モードにします
hetemlのアクセス制限を削除します

これでクレジットカード決済が導入されました

途中時間がかかるときは、いったんEC-CUBEの配送設定からクレジットカード決済を外して、アクセス制限を外し、運用するといいと思います



EC-CUBEの管理者パスワードを忘れた時

ひさしぶりにEC-CUBEをさわろうと
http://(EC-CUBEサーバーアドレス)/admin
にアクセス、ユーザー、パスワードを忘れた時
PHPをいじって、無条件に入れるようにしました
※本番環境では危険です

手元にあった、EC-CUBE 2.12.3でためしました

data/class/pages/admin/LC_Page_Admin_Index.php 85行目
if (SC_Utils_Ex::isBlank($this->arrErr))

if (! SC_Utils_Ex::isBlank($this->arrErr))
としたら、なんでもログインできるようになります


function action() {
    // パラメーター管理クラス
    $objFormParam = new SC_FormParam_Ex();

    switch ($this->getMode()) {
        case 'login':
            //ログイン処理
            $this->lfInitParam($objFormParam);
            $objFormParam->setParam($_POST);
            $this->arrErr = $this->lfCheckError($objFormParam);
            if (! SC_Utils_Ex::isBlank($this->arrErr)) { // ここを反転した
                $this->lfDoLogin($objFormParam->getValue('login_id'));

                SC_Response_Ex::sendRedirect(ADMIN_HOME_URLPATH);
            } else {
                // ブルートフォースアタック対策
                // ログイン失敗時に遅延させる
                sleep(LOGIN_RETRY_INTERVAL);

                SC_Utils_Ex::sfDispError(LOGIN_ERROR);
            }   
            break;
        default:
            break;
    }   
}

ログインできたら、パスワードを変更してPHPを元に戻したらいいですね