so, you want to be a plugin developer?

42
SO, YOU WANT TO BE A PLUGIN DEVELOPER? , WordPress Plugin Developer / Yannick Lefebvre @ylefebvre ylefebvre.ca/wcmtl14 WordCamp Montréal 2014

Upload: ylefebvre

Post on 10-Aug-2015

329 views

Category:

Technology


0 download

TRANSCRIPT

SO, YOU WANT TO BE APLUGIN DEVELOPER?

, WordPress Plugin Developer / Yannick Lefebvre @ylefebvre

ylefebvre.ca/wcmtl14

WordCamp Montréal 2014

ABOUT MEUser since 2004

First plugin in 2005

Eight free plugins on

Private plugins for customers

official repository

MY BOOKPublished July 2012

Learn all about plugindevelopment through morethan 80 step-by-stepexamples

MY GOALS TODAYEducate potential plugin developers

Make users appreciate plugin dev work

TOPICSFinding inspiration

Coding your masterpiece

Promoting your work

Monetization strategies

Supporting your community

FINDING INSPIRATIONBest plugins come from solving actual needs

functions.php code

Customer plugins

Recurring needs from wordpress.org forums

No good plugin for a task

WHAT CAN A PLUGIN DO?

Almost

ANYTHING!

ACTIONS AND FILTERS 101Actions allow you to execute code almost anywhere in pagerendering

Add content

Alter core functionality

Add custom admin panels

Extend WP (CPT, DB Schema, etc...)

ACTIONS AND FILTERS 101Filters allow you to modify almost any data before it is displayed

Hide unwanted elements

Modify page content

Insert new items on pages based on configuration (e.g.image slider)

ACTIONS AND FILTERS 1011061 action hooks

1594 filter hooks

Full list of calls hookr.io

ACTIONS AND FILTERS: THE BIG PICTURECommunity-driven sites

Complex store fronts

Dynamic content-driven sites

Enhance content editing

Create new importers

New ways to interact with external web sites

DID OTHERS HAVE YOUR IDEA?> 32000 plugins!

Look for others

Can you do better?

Name taken?

Reserve name ASAP

PLUGIN REPOSITORY SEO OPTIMIZATIONwordpress.org or plugins admin

Catchy name

Short description

Keywords

Test searches

CODING YOUR MASTERPIECECODE QUALITY

Size

Execution time

Admin versus front-end

PHP warnings

CODING YOUR MASTERPIECEUSER EXPERIENCE

Clean admin pages

No file modification

div tags for styling

FAQ and Documentation

CODING YOUR MASTERPIECETAB NAVIGATION STYLE

New style

CODING YOUR MASTERPIECEDISTRIBUTION LICENSE

GNU General Public License v2 or later

Core plugin code

PHP libraries

javascript / jQuery plugins

Icons and images

Plugins scanned for non-compliance

CODING YOUR MASTERPIECEPLUGIN SECURITY

Scanned for security holes

Known insecure libraries (Timthumb)

Malicious code injection

SQL injection

Relative file load paths

Suspended and hidden when issues found

Fix ASAP to get back online

CODING YOUR MASTERPIECEINTERNATIONALIZATION

Follow WordPress guidelines on making your plugin translatable

I18n for WordPress Developers

Dedicated users often provide translations for your work

CODING YOUR MASTERPIECETESTING

Single-site versus multi-site

Single plugin versus Top 10 popular plugins

http vs https

jQuery

Multiple themes

Local machine vs hosted site

Configuration option mix

PROMOTING YOUR WORKPLUGIN BANNER IMAGE

PROMOTING YOUR WORKPLUGIN BANNER IMAGE

PROMOTING YOUR WORKPLUGIN BANNER IMAGE

PROMOTING YOUR WORKPLUGIN BANNER IMAGE

morgueFile

PROMOTING YOUR WORKIMAGE RESOURCES

Others: , StockVault EveryStockPhoto

IconArchive

PROMOTING YOUR WORKICON RESOURCES

Others: , Icons8 The Noun Project

FontSquirrel

PROMOTING YOUR WORKFONT RESOURCES

MONETIZATION STRATEGIESFREE PLUGINS

Only free plugins on wordpress.org

Donation links

Ads for premium version

Guilt-based support

Revenue expectation: $0-100 / month

MONETIZATION STRATEGIESPREMIUM PLUGINS AND ADD-ONS

e.g. Gravity Forms, MailPoet

Direct revenue

Separate sale channel and hosting platform

Custom update mechanism

Potential piracy

User support expectation

Revenue expectation: Higher, more work

MONETIZATION STRATEGIESFAIR USE

Direct call to action

Allows integrators to remove donation links

Revenue expectation: Slightly better than free

MONETIZATION STRATEGIESFREE PLUGINS

MONETIZATION STRATEGIESMARKET SIZE

One download != 1 user

Update spikes, installed but not kept

MONETIZATION STRATEGIESMARKET PREFERENCE

Most users don't want to pay

But they want everything!

MONETIZATION STRATEGIESPLUGINS AS PORTFOLIOFunding for new features

Custom contract work

SUPPORTING YOUR COMMUNITYPopular plugin = Questions

Paid plugin = Demanding users

Avoid general WP support questions

Manage expectations

SUPPORTING YOUR COMMUNITYKEEP ALL SUPPORT IN ONE PLACE

wordpress.org forums

Easier for users to search

Harder to miss a question

Advanced users can help others!

SUPPORTING YOUR COMMUNITYVIDEO TUTORIALS

Free tools: , screenr.com Screencast-O-Matic

SUPPORTING YOUR COMMUNITYFEATURE REQUESTS

Good and bad ideas

Feature creep

Don't be afraid to say NO!

SUPPORTING YOUR COMMUNITYUPDATE FREQUENCY

Updates include

Bug fixes

New functionality

After update, users need to

Read changelog

Test site functionality

SUPPORTING YOUR COMMUNITYDROPPING FEATURES

Avoid if possible

No easy way to poll users

Remove and cross fingers

CONCLUSION

THANK YOU FORATTENDING MY TALK

QUESTIONS?

ylefebvre.ca/wcmtl14@ylefebvre