Slide 1

Slide 1 text

プラグインの開発と アドオン販売まで 社交ダンスの先生がプラグインを開発し アドオン販売を始めました。 その経緯とECサイトの構築について。 Katsushi Kawamori @katsushi-kawamori on WordPress.org and Slack 河森 克至

Slide 2

Slide 2 text

自己紹介1 •千葉県松戸市在住、勤務 松戸市 古くからの水戸街道の宿場町 •なぜ、WordCamp Kansai ? WordCamp Tokyo は、9月の第3週 •仕事の都合で出席できない。 •WordCamp kansai 2016 に誘われて以来 の縁だと思ったので。

Slide 3

Slide 3 text

自己紹介2 •社交ダンス教師 ケヅカダンスアカデミー松戸勤務 1997年9月〜 •プラグイン開発者 2013年3月〜 •アドオン販売者 2017年8月〜

Slide 4

Slide 4 text

社交ダンスの先生? •10年前までは、プロ競技会に出場していま した。 •教室で個人レッスン、グループレッスンを 行い、収入を得ています。 •お客様とプロアマミックス競技会、お客様 とパーティーでのデモンストレーションに 出演しています。

Slide 5

Slide 5 text

10年前 教室のパーティーで の、 プロデモンスト レーション

Slide 6

Slide 6 text

現在 教室のパーティーでの、 お客様 とのデモンストレーション

Slide 7

Slide 7 text

プラグイン開発以前 2003年9月教室のサイトを立ち上げました。

Slide 8

Slide 8 text

当時のサイトの特徴 •オーナーの仕事仲間が日記形式のサイトを作ってお り、その様なサイトにしようと話し合い立ち上げま した。 •プロパイダーから付与されたスペースを利用しまし た。ディスク容量100M、perlのみ使用可、なので、 blosxomを利用しました。 •その後、MySketchに移行しました。 •日記以外は、HTMLを書いてFTPでアップしました。

Slide 9

Slide 9 text

プログラミングスキルの習得 •パーティーや競技会の写真、講習の動画 を掲載しようという事になりました。 •これも、HTMLを書いて、メディアファイ ルと共にFTPでアップしました。

Slide 10

Slide 10 text

プログラミングスキルの習得 •HTMLを書くのが面倒くさい!! •メディアファイルのアップだけで、あと はディレクトリ以下を検索して表示させ るプログラムをperlで作成しました。 •このプログラムをGalleryLinkと名付け、 フリーソフトとして配布しました。

Slide 11

Slide 11 text

WordPress へ •2012年、写真や動画がサーバーを圧迫。手狭 になり、レンタルサーバーを借りました。 •PHPが利用できるようになったので、 GalleryLinkを移植しました。PHPの関数の多さ と使い易さに感動しました。 •2013年初頭、WordPress をインストールして 、その素晴らしさに圧倒されました。

Slide 12

Slide 12 text

プラグイン作成 •GalleryLinkの代替えをプラグインディレクト リで探しましたが、用途に合うものが見つ かりませんでした。 •では、プラグインに移植してしまおう!! •苦闘の始まりです。

Slide 13

Slide 13 text

種々のプラグインの作成1 •教室のお客様は、高齢者。ガラケーを使用。 •ユーザーエージェントごとに、テーマや コンテンツや表示を切り替えたい! •UserAgent Themes Switcher、UserAgent Content Switcher を作成。

Slide 14

Slide 14 text

•別のシステムのブログから引っ越し、 投稿日時等が上手く引っ越せなかった。 •投稿日時を変更したい。 •Post Date Time Change を作成。 種々のプラグインの作成2

Slide 15

Slide 15 text

•ブログ内の全画像を見たいというお客 様の要望。 •Gallery Link を作成。 •後に、 Infinite All Images を作成。 種々のプラグインの作成3

Slide 16

Slide 16 text

•オーナーの要望で、連絡をティッカー で表示させたい。 •Simple Ticker を作成。 種々のプラグインの作成4

Slide 17

Slide 17 text

•オーナーの奥様が講習の動画を簡単に 見たいと要望。 •iPad のアプリ で見れるようにする。 •メディアのフィードが必要。 •Gallery Link で対応。 •後に、MediaLibrary Feeder、 Media Feed を作成。 種々のプラグインの作成5

Slide 18

Slide 18 text

•メディアライブラリーに大容量の動画 をアップしたい。 •PHPのアップ容量が制限されている。 •Media from FTP を作成。 種々のプラグインの作成6

Slide 19

Slide 19 text

プラグイン Media from FTP の誕生 人気プラグインとなる! wp-content/uploads ディレクトリ以下にある、 メディアライブラリーに登録されていない ファイルを検索して、メディアライブラリー に登録するものです。

Slide 20

Slide 20 text

最初の評価は酷かった 実用のために作っ たので、ファイル をチェックボック スで選択する機能 すらありませんで した。

Slide 21

Slide 21 text

ファイルをチェックボック スで選択する機能を付加。 五つ星のレビューがついた! 嬉しい!

Slide 22

Slide 22 text

調子に乗り、サポート フォーラムで要求がある と、機能を追加。 五つ星のレビュー が増えて人気が出 ました。

Slide 23

Slide 23 text

どの様な人がこのプラグイ ンを使用しているのか? ほとんどが、ビジネス用 途。自分には収入無し。

Slide 24

Slide 24 text

虚しい!

Slide 25

Slide 25 text

お金が欲しい!

Slide 26

Slide 26 text

そうだ!京都へ行こう!

Slide 27

Slide 27 text

WordCamp Kyoto 2017 に出席しました。

Slide 28

Slide 28 text

2016年4月に、WordCampへ の協力を北島卓様より、打 診されていました。 その際は、都合が合わず 、お断りしました。

Slide 29

Slide 29 text

WordCamp Kyoto 2017 で 、北島様他、何人かの方 とお話しして、アドオン 販売を決意しました。

Slide 30

Slide 30 text

アドオンのアイデア サポートフォーラムでのやりとり からアイデアを得ました。

Slide 31

Slide 31 text

登録時に カテゴリーを 追加する アイデア

Slide 32

Slide 32 text

登録時にEXIFデータをメディアライブラ リーのキャプションに挿入するアイデア

Slide 33

Slide 33 text

Cronによりスケジュールされた間隔 で自動で検索し登録するアイデア

Slide 34

Slide 34 text

フォーラムに書き込んで いただいた方々に 感謝いたします!!

Slide 35

Slide 35 text

アドオンのライセンス GPL 100% としました。 WordPress がGPL なので。

Slide 36

Slide 36 text

アドオン作成の苦労 •他のプラグインが有効かチェックする 事にはまる。 •Is_plugin_active() 関数の挙動 •動作する時、しない時がある? •function_exists(), class_exists() を採用。

Slide 37

Slide 37 text

アドオンの販売 •販売形態は売り切り。 •500円、1000円、2000円×2 とした。 •BASEとGumroadで、販売を始めた。

Slide 38

Slide 38 text

1カ月全く売れなかった。

Slide 39

Slide 39 text

何故? •客は、買う気になって、購入ボタンを押し た時に、別サイトに移動させられると、購 買意欲を削がれるのでは? •自サイトに、ECを導入することを決意。 •Easy Digital Downloads を導入。PayPal 決済。 •すぐに、売れ始める。

Slide 40

Slide 40 text

欲が出た。 •値上げに踏み切る。 •2500円、5000円、10000円×2 に、値上げ。 •また、売れなくなる。

Slide 41

Slide 41 text

適正価格、機能追加 •2000円、4000円、6000円×2 に、値下げ。 •自動アップグレードに対応。 YahnisElsts plugin-update-checker https://github.com/YahnisElsts/plugin- update-checker/releases/tag/v4.4 •客足が戻る。

Slide 42

Slide 42 text

ECシステム変更 •WooCommerce に変更。 •決済方法は複数あった方が有利なので、 Stripe を導入した。

Slide 43

Slide 43 text

EC構築で気を使った事 add_filter( 'woocommerce_checkout_fields', 'disable_checkout_form_woocommerce' ); add_filter( 'woocommerce_enable_order_notes_field', '__return_false' ); function disable_checkout_form_woocommerce( $fields ){ unset($fields['billing']['billing_company']); unset($fields['billing']['billing_address_1']); unset($fields['billing']['billing_address_2']); unset($fields['billing']['billing_city']); unset($fields['billing']['billing_postcode']); unset($fields['billing']['billing_country']); unset($fields['billing']['billing_state']); unset($fields['billing']['billing_phone']); unset($fields['order']['order_comments']); return $fields; }

Slide 44

Slide 44 text

フィルター適用前 フィルター適用後

Slide 45

Slide 45 text

翻訳について • アドオンの販売のためには、 元のプラグイン Media from FTP の多国語化が不可欠。 • 日本の WordPress フォーラム で、GlotPress を Hinaloe 様か ら教えていただきました。

Slide 46

Slide 46 text

GlotPress対応後 •すぐに、ドイツ語の翻訳者が現れました。 •それ以後は、 Media from FTP に、良いレビューをくれた方 に、Slack でダイレクトメッセージを送って翻訳を促しまし た。 •現在、7ヶ国語対応です。 • Media from FTP のスペシャルサイトを立ち上げて、7ヶ国 語に対応させました。こちらの方の翻訳は、有料サービス Gengo を利用しました。

Slide 47

Slide 47 text

他のプラグインの翻訳 •自分のプラグインを翻訳していただき、 ありがたかったので、他のプラグインの 翻訳をGlotPressで行うようになりました。 以下のプラグインを翻訳継続中です。 •Media Library Categories •WP Crontrol •Server IP & Memory Usage Display •Loginpetze

Slide 48

Slide 48 text

エゴサーチ •IFTTT を使用。Twitter で検索ワードがヒット すると、Line に通知が来るようにした。 •プラグインが、セキュリティの問題で、2日 間ほどクローズした時に役立ちました。 •火消しの Tweet 、コメント 、ReTweet を行 い、大火になるのを防ぎました。

Slide 49

Slide 49 text

今後の展開 •収入を安定させるために、売り切りではな く、定期支払いが必要。 •定期支払いでも、購入したくなる魅力的な 、商品にするには? •アドオンは売り切りにし、低額の年間定期 支払いでの会員料金を支払っていただく?

Slide 50

Slide 50 text

最後に • プラグインの開発のアイデアは、いろいろな所に 転がっています。必要は発明の母です。 • 完全なものを作らなくても、取り敢えず公式ディ レクトリにあげてみるべきです。サポートフォー ラムに何か反応があるはずです。サポートフォー ラムに育ててもらえるような事があるかもしれま せん。 • プラグインのアドオン販売は、世界中が顧客にな る可能性があります。やり方次第で、貴重な収入 源になると思います。