WooCommerceとMauticを連携させるプラグインをリリースした話

この記事はWooCommerce Advent Calendar 2016の何日目かの記事です。

概要

  1. MauticとWooCommerceつなぐプラグイン作ってみました
  2. 海外から意外と反響あって嬉し恥ずかしこれからどうしよう状態なう
  3. 思いつきレベルでも、OSSならとりあえず作って公開しちゃうといいよ

作ったもの

何はともあれ作ったものはこちらです。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-29-9-43-38

「Mautic」と「WooCommerce」を連携させるんだから、名前も繋いじゃえということでこの名前になりました。

画像・アイコンはバンジョーさんにお願いしました。ありがとうございます。

背景とか

Mautic連携系のWPプラグインが公式のしかなかったので、「作るなら今だなー」と思っただけです。はい。

ちなみにContact Form 7対応版のプラグインも同じ仕組みを流用して作ってます。

使い方

基本的には以下の通りやれば使えます。

  1. プラグインを有効化する
  2. Mauticとの連携設定をする
  3. 対応するMauticのFormを作る
  4. WooCommerceで購入した顧客の住所や氏名などがMauticに送られます

更に身もふたもないことを言えば「Wiki見ろ」です。
英語ですが画像付きで紹介しているので、そこまで難しくないと思います。ファイト
Mauticフォームの作り方
プラグインセットアップ方法

Tips的なこと

WooCommerceの購入情報はWC_Orderクラスに入ってます。(WC_Orderについてのドキュメント

なのでフックかけてこのオブジェクトから必要な情報を取得し、それをMauticのFormにwp_remote_postでぶん投げるという実装になってます。
該当コード:https://github.com/amimoto-ami/mauticommerce/blob/master/inc/class.order.php#L54-L86

returnする前にフックが仕掛けてあるので、以下のようにすることで送る値をカスタマイズすることができます。

add_filter( 'mauticommerce_query_mapping', 'add_mapping_query', 10, 2 );
function add_mapping_query( $query, $order ) {
        //Add $order Param to $query
        $query['customer_ip_address'] = $order->customer_ip_address;
        return $query;
}

作ってみて

Mautic自体の認知がまだまだなので、日本ではそんなに使われないだろうなーということで英語頑張りました。

そしたら.orgで5つ星評価が複数飛んできたり、issueやらプルリクやらちょくちょく来るようになったりで「まじかよ」状態になってたりします。

中には「お前のReadme読みにくいから作ったぜ」なんて猛者まで出てきたりしています。

あとPHP5.5からの実装を使うと定期的に「動かねー」報告がきたりするので、古いバージョンを切る時はその旨をしっかり出しておかないとかなと思います。

参考:WordPress プラグインで使う定数値はヘッダ部分で管理して get_file_data() で取得すると良いと思うけど、どんなもんでしょう | dogmap.jp

終わりに

とはいえ、「これいけんじゃね?」という思いつきでさっと作ったものが予想外のところでウケるという現象は凄く面白いですし、なかなか経験できるものではないのかなと思います。

そんなわけで、「あれ、こんな機能のプラグインあると思ったのに」とか「そういえばよく使うコードあるなー」って人はぜひ.orgのプラグインディレクトリにアップしていくと良いと思いますよ。

WooThemesの方なら有料で配布もできるみたいですが、こっちはPHPDocsが必須だったりプラグインヘッダの指定があったりと.orgより細かいレビューが付くので気合要るかもです。

Follow me!