ithemes exchange for developers

Post on 22-Jan-2015

541 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Learn Theme & Add-on Development for Exchange - Free Webinar July 26th with lead dev Glenn Ansley. iThemes Exchange, our free ecommerce plugin, is the easiest way to get your clients selling online with WordPress. iThemes Exchange lead developer Glenn Ansley gives an overview of Exchange, including a walk-through of the API so that you can create custom (or premium) add-ons and themes.

TRANSCRIPT

iThemes Exchangefor developers

Simple ecommerce for WordPress

Where do you jump in?

How is Exchange Organized

● /lib

How is Exchange Organized

● /lib● /api

How is Exchange Organized

● /lib● /api● /core-addons

How do I register an add-on?

exchange-addon-stripe/exchange-addon-stripe.php

How do I generate a settings page?

exchange-addon-stripe/exchange-addon-stripe.php

How do I generate a settings page?

exchange-addon-stripe/lib/addon-settings.php

How do Products & Product Types work?

● All Exchange products are a single WP

post_type

● Product Features are tied to product types

● Admin UI is reactive to the registered

types

o Setup Wizard

o Sidebar

o Add / Edit products

ithemes-exchange/lib/products/class.products-post-type.php

One WP post_type

How do Products & Product Types work?

Admin UI is Reactive

How do Products & Product Types work?

How do I register a Product Type?

ithemes-exchange/core-addons/load.php

Product Types are an add-on category

How do I register a Product Type?

exchange-addon-membership/exchange-addon-membership.php

Product Types are an add-on category

What are Product Features?

product_feature all the things!

ithemes-exchange/lib/product-features/

How do Product Features work?

product_feature all the things!

ithemes-exchange/lib/product-features/class.downloads.php

hooked to it_exchange_enabled_addons_loaded

How do Product Features work?

product_feature all the things!

ithemes-exchange/lib/product-features/

How do Product Features work?

ithemes-exchange/lib/product-features/class.abstract.php

Use the Abstract Class to create Product Features

How do Product Features work?

ithemes-exchange/lib/product-features/class.inventory.php

See the inventory product feature as example of abstract implementation.

How do Product Features work?

product_feature all the things!

ithemes-exchange/lib/product-features/

Why use our Product Feature class?

● it_exchange_product_supports_feature()

● it_exchange_product_has_feature()

● it_exchange_update_product_feature()

● it_exchange_get_product_feature()

● it_exchange_add_feature_support_to_product_type()

● it_exchange_remove_feature_support_for_product_type()

● it_exchange_product_type_supports_feature()

● it_exchange_get_registered_product_features()

It exposes your feature to all these API functions

ithemes-exchange/api/product-features.php

How do I use a Product Feature?

product features API

ithemes-exchange/api/theme/products.php

How do Exchange Pages work?

How do Exchange Pages work?Pages have 1-3 options: Exchange, WordPress, Disabled

How do I register an Exchange page?

ithemes-exchange/lib/functions/functions.php

ithemes-exchange/lib/api/pages.php

How does templating work?We have #alot of template-parts

ithemes-exchange/lib/templates/http://hyperboleandahalf.blogspot.com/2010/04/alot-is-better-than-you-at-everything.html

How does templating work?Standard Templating Components

ithemes-exchange/lib/templates/content-store.php

How does templating work?Top Level v. Loops v. Elements ( all template-parts )

ithemes-exchange/lib/templates/content-login.php

Loops are template-parts too but their primary job is to call additional (but related) template-parts.

ithemes-exchange/lib/templates/content-login/loops/fields.php

Top

Level

Loop

How does templating work?Top Level v. Loops v. Elements ( all template-parts ) Elements are usually extremely small chunks of

HTML

ithemes-exchange/lib/templates/content-login/loops/fields.phpLo

op

ithemes-exchange/lib/templates/content-login/elements/username.php

Ele

ment

There are 3 ways increasingly complex ways to alter output

1. WordPress Hooks ( multiple hooks in every template part )

o Ideal for quick additions to non-distributed code

2. Overwriting individual template parts in your theme

o Ideal for theme authors or clients that have highly customized themes and may need some custom CSS classes, etc.

3. Inserting, removing, rearranging template parts with the templating API

o Ideal for add-on developers and clients that may enable additional add-ons without you in the future.

How should I modify the templates?

1) WordPress Hooks (simple)

How should I modify the templates?

ithemes-exchange/lib/templates/content-registration/elements/email.php

2) Overwriting template parts in your theme (moderately difficult)

How should I modify the templates?

ithemes-exchange/lib/templates/content-store/elements/featured-image.php

themes/twentythirteen-child-exchange/exchange/content-store/elements/featured-image.php

2) Overwriting template parts in your theme (moderately difficult)

How should I modify the templates?

ithemes-exchange/lib/templates/content-store/elements/featured-image.php

themes/twentythirteen-child-exchange/exchange/content-store/elements/featured-image.php

Exchange looks for the template-parts in the following locations by default

1. [child-theme]/exchange/

2. [parent-theme]/exchange/

3. ithemes-exchange/lib/templates/

2) Overwriting template parts in your theme (moderately difficult)

How should I modify the templates?

3) Inserting / deleting / rearranging ( difficult but powerful )

How should I modify the templates?

ithemes-exchange/api/template-parts.php

3) Inserting / deleting / rearranging ( difficult but powerful )

How should I modify the templates?

ithemes-exchange/lib/templates/content-login/loops/fields.php

ithemes-exchange/api/template-parts.php

3) Inserting / deleting / rearranging ( difficult but powerful )

How should I modify the templates?

ithemes-exchange/lib/templates/content-login/loops/fields.php

ithemes-exchange/api/template-parts.php

How should I modify the templates?

ithemes-exchange/lib/templates/content-store/elements/featured-image.php

Exchange looks for the template-parts in the following locations by default

1. [child-theme]/exchange/

2. [parent-theme]/exchange/

3. ithemes-exchange/lib/templates/

3) Inserting / deleting / rearranging ( difficult but powerful )

How should I modify the templates?

ithemes-exchange/lib/templates/content-store/elements/featured-image.php

Exchange looks for the template-parts in the following locations by default

1. [child-theme]/exchange/

2. [parent-theme]/exchange/

3. locations added via the ‘it_exchange_possible_template_paths’ filter

4. ithemes-exchange/lib/templates/

3) Inserting / deleting / rearranging ( difficult but powerful )

ithemes-exchange/lib/functions/template-functions.php

How should I modify the templates?

ithemes-exchange/lib/templates/content-store/elements/featured-image.php

3) Inserting / deleting / rearranging ( difficult but powerful )

ithemes-exchange/core-addons/taxes/taxes-simple/init.php

filters generated inside it_exchange_get_template_part_loops()

How should I modify the templates?3) Inserting / deleting / rearranging ( difficult but powerful )

ithemes-exchange/core-addons/taxes/taxes-simple/init.php

How should I modify the templates?3) Inserting / deleting / rearranging ( difficult but powerful )

before after

How does the Theme API work?it_exchange( ‘context’, ‘tag’, $options );

ithemes-exchange/api/theme/

How does the Theme API work?it_exchange( ‘context’, ‘tag’, $options );

ithemes-exchange/api/theme/product.php

it_exchange( ‘product’, ‘found’);

it_exchange( ‘product’, ‘description’);

How does the Theme API work?it_exchange( ‘context’, ‘tag’, $options );

ithemes-exchange/api/theme/product.php

it_exchange( ‘product’, ‘baseprice’, array( ‘before’ => ‘<p>’, ‘after’ => ‘</p>’ ) );

How does the Theme API work?Prefixes

ithemes-exchange/api/theme/product.php

it_exchange( ‘product’, ‘get-description’);

it_exchange( ‘product’, ‘has-description’);

it_exchange( ‘product’, ‘supports-description’);

it_exchange( ‘product’, ‘description’); // prints the description

// returns a boolean

// returns a boolean

// returns the description

How does the Theme API work?A couple examples

ithemes-exchange/lib/templates/super-widget-cart.php

iThemes Exchangefor developers

top related