wordpressのgianismプラグインのwpg_connectフックを修正したら動いた

wordpressのgianismプラグインのwpg_connectフックを修正したら動いた
gianismプラグインはバージョン2.0以降は内部構造に大きな変化がありましたので、以下は最新の情報とは限りません。ChangeLog

wordpressでphp勉強中なわけですが、このブログでも何回かメモしたgianismプラグインをまた使った。
相変わらず素敵だ。高橋さんという方が作られたのだが、なんか素敵オーラが漂っている。

で、wpg_connectというフックがある。これはGoogleなどでユーザーがOAUTHログインした際に利用できる
もの。今回はユーザーがOAUTHでWordpressに新規ユーザー登録したら一部DBに値を追加したいなと思って、
このフックを触るに至った。

で、どうも引数が取れない。予定ではGoogleでログインしたのかFacebookでログインしたのかが分かる
はずだったのだが。

そこでソースを見てみた。が、いまいちよくわからない。
そこでググってみた。が、いまいちよくわからない。
そこでもっとグッとググってみた。で、たぶんわかった。

do_action関数の引数の在り方がWordpressの更新で変わった?のかな。とにかくなんか違った。
そこでやってはいけないと言われながらも直接プラグインのソースコードをいじった。
たぶん、クラス継承したりremove_actionしてadd_actionし直したりするのが正解なんかもしれん。

でも、コードをいじった。そこに、コードがあったから。

◆変更前:gianism/sdk/google/google_controller.php

do_action('wpg_connect', $user_id, $profile, 'google', true);

◆変更後:gianism/sdk/google/google_controller.php

do_action('wpg_connect', array("user_id"=>$user_id, "profile"=>$profile, "type"=>'google', "is_login"=>true));

このようにdo_actionの第二引数を配列に入れてあげたら、add_actionした先でも取得できた。
ホッ。

今日もジャイアンに感謝。