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の配送設定からクレジットカード決済を外して、アクセス制限を外し、運用するといいと思います



Github organizationアカウントの作り方

集まってごにょごにょしようという、コミュニティを作ったのでGithubで専用アカウントを作ってみました
こういうのはorganizationアカウントというらしいです

詳しくはhelpページを
https://help.github.com/categories/organizations/

organizationアカウントは
https://github.com/organizations/new
にアクセスして作ります

お持ちのgithubアカウントでログインして
github-organization1
名前とEmailと入力、プランを選んで次へ

github-organization2
オーナーとなる人を招待して終わりです

githubへログインしてトップ画面へ行くと、プルダウンでアカウントが選べるようになります
github-organization3

JavaのEnum型の基本

JavaのEnum型の基本を整理

Enumは

enum Number{
  ZERO, ONE, TWO;
}
System.out.println(Number.ONE);
// > ONE
System.out.println(Number.ONE.ordinal());
// 序数を出力 > 1

といった様子

C言語とは違いJavaではクラスらしいので、コンストラクタを用意することができて、初期値がセットできます
小数点を増やしてみました

enum Number {
    POINT("."),ZERO("0"),ONE("1"),TWO("2");
    private String value;
    private Number (String value) {
        this.value = value;
    }
    public String getString() {
        return this.value;
    }
}
System.out.println(Number.ONE);
// > ONE
System.out.println(Number.ONE.ordinal());
// 序数を出力 > 2
System.out.println(Number.ONE.getString());
// > 1

となります