SlideShare uma empresa Scribd logo
1 de 63
Baixar para ler offline
L'API CUSTOMIZER
POUR LES PLUGINS
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
REMICORSONAUTOMATTIC / WOOTHEMES / WOOCOMMERCE
@REMICORSON - REMICORSON.COM
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
L'EMETTEUR EST
TOUJOURS RESPONSABLE
DE L'IMCOMPREHENSION
DE SON MESSAGE© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
EXEMPLES
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
PENDANT CE TEMPS...
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
ET POUR LES PLUGINS ?
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
3 POSSIBILITÉS
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
> Hooker les options du thème
> Hooker Les options de votre plugin
> Hooker les options d'un autre plugin
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
DEMO© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
8 ETAPES
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
1 - AJOUTER UN BOUTON
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
// Ajout d'options aux paramètres existants
add_action(
'woocommerce_products_general_settings',
array(
$this,
'product_settings'
)
);
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
public function product_settings( $settings ) {
// Configuration du bouton
$customizer_settings[] = array(
'title' => __( 'WooCommerce Customizer', '' ),
'type' => 'title',
'id' => 'product_customizer',
);
$customizer_settings[] = array(
'title' => __( 'Pimp my shop!', '' ),
'desc' => __( 'Customize WooCommerce', '' ),
'type' => 'wc_product_customize_button',
'id' => 'product_customizer_button',
'link' => $this->customizer_url, // Attention !
);
$customizer_settings[] = array(
'type' => 'sectionend',
'id' => 'product_customizer_sectionend',
);
$settings = array_merge( $customizer_settings, $settings );
return $settings;
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
// Ajout d'une action pour notre bouton
add_action(
'woocommerce_admin_field_wc_product_customize_button',
array(
$this,
'customize_button'
)
);
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
// Création du rendu du bouton
public function customize_button( $settings ) {
?>
<tr valign="top">
<th scope="row" class="titledesc"><?php echo $settings['desc'];?></th>
<td class="forminp forminp-<?php echo sanitize_title( $settings['type'] ) ?>">
<a href="<?php echo $settings['link']; ?>">
<button
name="<?php echo esc_attr( $settings['id'] ); ?>"
id="<?php echo esc_attr( $settings['id'] ); ?>"
style="<?php echo esc_attr( $settings['css'] ); ?>"
class="button-secondary <?php echo esc_attr( $settings['class'] ); ?>"
type="button">
<?php echo $settings['title']; ?>
</button>
</a>
</td>
</tr>
<?php
return true;
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
2 - DÉTERMINER L'URL DU CUSTOMIZER
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
/**
* Constructeur
*/
public function __construct() {
self::$_this = $this;
$this->_set_customizer_url();
//...
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
// Définition de l'URL du Customizer
private function _set_customizer_url() {
$url = admin_url( 'customize.php' );
$url = add_query_arg( 'wc-product-customizer', 'true', $url );
$url = add_query_arg(
'url',
wp_nonce_url( site_url() . '/?wc-product-customizer=true', 'preview-shop' ),
$url ); // Passage d'un marqueur d'URL
$url = add_query_arg(
'return',
urlencode( add_query_arg( array(
'page' => 'wc-settings',
'tab' => 'products'
),
admin_url( 'admin.php' )
)
),
$url ); // URL de retour
$this->customizer_url = esc_url_raw( $url );
return true;
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
3 - CRÉER LES OPTIONS DU CUSTOMIZER
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
add_filter( 'customize_register', array(
$this,
'customizer_sections'
),
40
);
add_filter( 'customize_register', array(
$this,
'customizer_settings'
)
);
add_filter( 'customize_register', array(
$this,
'customizer_controls'
),
50
);
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
// Ajout de section
$wp_customize->add_section( 'wc_product_colors', array (
'title' => __( 'WooCommerce', '' ),
'capability' => 'edit_theme_options',
'priority' => 10,
) );
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
$wp_customize->add_setting( 'woocommerce_buttons_background_color', array(
'type' => 'option', // Attention !
'default' => '#f5f5f5',
'transport' => 'postMessage',
) );
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
$wp_customize->add_control( new WP_Customize_Color_Control(
$wp_customize,
'wc_product_bg_color_control',
array(
'label' => __( 'Button Background Color', '' ),
'priority' => 10,
'section' => 'wc_product_colors',
'settings' => 'woocommerce_buttons_background_color',
)
)
);
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
4 - CHARGER LA PAGE CONCERNÉE
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
// Redirection du customizer sur la page boutique
add_action(
'template_redirect',
array(
$this,
'load_shop_page'
)
);
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
public function load_shop_page( $wp_query ) {
// chargement conditionnel basé sur get_query_var
if ( get_query_var( $this->_trigger ) ) {
wp_redirect( get_permalink( get_option( 'woocommerce_shop_page_id' ) ) );
exit;
}
return $wp_query;
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
PETITE PAUSE
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
5 - AJOUTER UN MARQUEUR
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
public function __construct() {
self::$_this = $this;
// Définition d'un marqueur d'URL
$this->_trigger = 'wc-product-customizer';
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
// Ajout du marqueur dans l'URL
add_filter( 'query_vars', array(
$this,
'add_query_vars'
)
);
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
public function add_query_vars( $vars ) {
$vars[] = $this->_trigger;
return $vars;
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
6 - FAIRE UN NETTOYAGE DE PRINTEMPS
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
if ( isset( $_GET[ $this->customizer_trigger ] ) ) {
//...
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
// Suppression des options du thème
add_filter( 'customize_register', array(
$this,
'remove_sections'
),
40
);
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
public function remove_sections( $wp_customize ) {
global $wp_customize;
$wp_customize->remove_section( 'themes' );
return true;
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
// Supprime les panels non désirés
public function remove_panels( $wp_customize ) {
global $wp_customize;
// crée une erreur de type 'undefined object notice'
// bug WordPress core
//$wp_customize->remove_panel( 'nav_menus' );
// Astuce
$wp_customize->get_panel( 'nav_menus' )->active_callback = '__return_false';
return true;
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
7 - AJOUT DE CSS & JS
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
( function( $ ) {
'use strict';
wp.customize( 'woocommerce_buttons_background_color', function( value ) {
value.bind( function( newval ) {
$( '.button' ).css( 'background-color', newval );
} );
} );
} )( jQuery );
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
public function enqueue_customizer_script() {
wp_enqueue_script(
'woocommerce-product-customizer-live-preview',
WC_PRODUCT_CUSTOMIZER_PLUGIN_URL . '/assets/js/customizer.js',
array(
'jquery',
'customize-preview'
),
WC_PRODUCT_CUSTOMIZER_VERSION,
true
);
return true;
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
add_filter( 'wp_footer', array( $this, 'add_styles' ) );
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
public function add_styles() {
$styles = "n<style type='text/css' media='screen'>n";
$bg_color = '.woocommerce a.button { background-color: ';
$bg_color .= get_option( 'woocommerce_buttons_background_color', '#f5f5f5' )
$bg_color .= '; }';
$styles .= $bg_color;
$styles .= "n</style>n";
echo $styles;
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
8 - LUSTRER LA BÊTE...
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
// Afficher uniquement nos options
if ( isset( $_GET[ $this->customizer_trigger ] ) ) {
add_filter(
'customize_control_active',
array(
$this,
'control_filter'
),
10, 2
);
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
public function control_filter( $active, $control ) {
if ( in_array( $control->section, array( 'wc_product_colors' ) ) ) {
return true;
}
return false;
}
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
QUESTIONS ?
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
RDV À 14H00AVEC JULIEN OGER & PIERRE DARGHAM
" PENSEZ WEB-PERFORMANCE AVEC WORDPRESS "
© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015

Mais conteúdo relacionado

Mais procurados

Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress Maurizio Pelizzone
 
Curso Symfony - Clase 2
Curso Symfony - Clase 2Curso Symfony - Clase 2
Curso Symfony - Clase 2Javier Eguiluz
 
Beyond the WordPress 5 minute Install
Beyond the WordPress 5 minute InstallBeyond the WordPress 5 minute Install
Beyond the WordPress 5 minute InstallSteve Taylor
 
Getting to The Loop - London Wordpress Meetup July 28th
Getting to The Loop - London Wordpress Meetup  July 28thGetting to The Loop - London Wordpress Meetup  July 28th
Getting to The Loop - London Wordpress Meetup July 28thChris Adams
 
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpOptimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpMatthew Davis
 
Keeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackKeeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackIgnacio Martín
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsDylan Jay
 
How to start with eZ Publish 5
How to start with eZ Publish 5How to start with eZ Publish 5
How to start with eZ Publish 5Donat Fritschy
 
Object Oriented Programming for WordPress Plugin Development
Object Oriented Programming for WordPress Plugin DevelopmentObject Oriented Programming for WordPress Plugin Development
Object Oriented Programming for WordPress Plugin Developmentmtoppa
 
Take Command of WordPress With WP-CLI
Take Command of WordPress With WP-CLITake Command of WordPress With WP-CLI
Take Command of WordPress With WP-CLIDiana Thompson
 
Vagrant WordCamp Hamilton
Vagrant  WordCamp HamiltonVagrant  WordCamp Hamilton
Vagrant WordCamp HamiltonPaul Bearne
 
Demystifying Hooks, Actions & Filters - WordCamp Belfast 2018
Demystifying Hooks, Actions & Filters - WordCamp Belfast 2018Demystifying Hooks, Actions & Filters - WordCamp Belfast 2018
Demystifying Hooks, Actions & Filters - WordCamp Belfast 2018Damien Carbery
 
Symfony tips and tricks
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricksJavier Eguiluz
 
Widget Summit 2008
Widget Summit 2008Widget Summit 2008
Widget Summit 2008Volkan Unsal
 
Webinar: AngularJS and the WordPress REST API
Webinar: AngularJS and the WordPress REST APIWebinar: AngularJS and the WordPress REST API
Webinar: AngularJS and the WordPress REST APIWP Engine UK
 
Symfony: Your Next Microframework (SymfonyCon 2015)
Symfony: Your Next Microframework (SymfonyCon 2015)Symfony: Your Next Microframework (SymfonyCon 2015)
Symfony: Your Next Microframework (SymfonyCon 2015)Ryan Weaver
 

Mais procurados (20)

Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress
 
Curso Symfony - Clase 2
Curso Symfony - Clase 2Curso Symfony - Clase 2
Curso Symfony - Clase 2
 
Beyond the WordPress 5 minute Install
Beyond the WordPress 5 minute InstallBeyond the WordPress 5 minute Install
Beyond the WordPress 5 minute Install
 
Getting to The Loop - London Wordpress Meetup July 28th
Getting to The Loop - London Wordpress Meetup  July 28thGetting to The Loop - London Wordpress Meetup  July 28th
Getting to The Loop - London Wordpress Meetup July 28th
 
SocketStream
SocketStreamSocketStream
SocketStream
 
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpOptimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
 
Keeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackKeeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and Webpack
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web apps
 
How to start with eZ Publish 5
How to start with eZ Publish 5How to start with eZ Publish 5
How to start with eZ Publish 5
 
Object Oriented Programming for WordPress Plugin Development
Object Oriented Programming for WordPress Plugin DevelopmentObject Oriented Programming for WordPress Plugin Development
Object Oriented Programming for WordPress Plugin Development
 
Take Command of WordPress With WP-CLI
Take Command of WordPress With WP-CLITake Command of WordPress With WP-CLI
Take Command of WordPress With WP-CLI
 
Vagrant WordCamp Hamilton
Vagrant  WordCamp HamiltonVagrant  WordCamp Hamilton
Vagrant WordCamp Hamilton
 
Demystifying Hooks, Actions & Filters - WordCamp Belfast 2018
Demystifying Hooks, Actions & Filters - WordCamp Belfast 2018Demystifying Hooks, Actions & Filters - WordCamp Belfast 2018
Demystifying Hooks, Actions & Filters - WordCamp Belfast 2018
 
Symfony tips and tricks
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricks
 
Widget Summit 2008
Widget Summit 2008Widget Summit 2008
Widget Summit 2008
 
Fast by Default
Fast by DefaultFast by Default
Fast by Default
 
Webinar: AngularJS and the WordPress REST API
Webinar: AngularJS and the WordPress REST APIWebinar: AngularJS and the WordPress REST API
Webinar: AngularJS and the WordPress REST API
 
Css web gallery
Css web galleryCss web gallery
Css web gallery
 
Symfony: Your Next Microframework (SymfonyCon 2015)
Symfony: Your Next Microframework (SymfonyCon 2015)Symfony: Your Next Microframework (SymfonyCon 2015)
Symfony: Your Next Microframework (SymfonyCon 2015)
 
Complex Sites with Silex
Complex Sites with SilexComplex Sites with Silex
Complex Sites with Silex
 

Destaque

Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015PXNetwork
 
Comment créer des hooks dans vos développements WordPress - WP Tech 2015
Comment créer des hooks dans vos développements WordPress - WP Tech 2015Comment créer des hooks dans vos développements WordPress - WP Tech 2015
Comment créer des hooks dans vos développements WordPress - WP Tech 2015Boiteaweb
 
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...pierredargham
 
Migrer les données de n'importe quel CMS vers WordPress
 Migrer les données de n'importe quel CMS vers WordPress Migrer les données de n'importe quel CMS vers WordPress
Migrer les données de n'importe quel CMS vers WordPressTony Archambeau
 
WooCommerce: How to Customize WordPress via PHP Snippets
WooCommerce: How to Customize WordPress via PHP SnippetsWooCommerce: How to Customize WordPress via PHP Snippets
WooCommerce: How to Customize WordPress via PHP SnippetsRodolfo Melogli
 
PDFs à la volée avec TCPDF
PDFs à la volée avec TCPDFPDFs à la volée avec TCPDF
PDFs à la volée avec TCPDFJenny Beaumont
 
Making WooCommerce Your Own
Making WooCommerce Your OwnMaking WooCommerce Your Own
Making WooCommerce Your OwnLeo Gopal
 
Master WooCommerce Troubleshooting
Master WooCommerce TroubleshootingMaster WooCommerce Troubleshooting
Master WooCommerce TroubleshootingRodolfo Melogli
 
Cómo crear una tienda online en wordpress
Cómo crear una tienda online en wordpressCómo crear una tienda online en wordpress
Cómo crear una tienda online en wordpressBeatriz González Pozo
 
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC)
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC) Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC)
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC) EOI Escuela de Organización Industrial
 
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)Beatriz González Pozo
 
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017Boiteaweb
 
Tiendas de Ropa
Tiendas de RopaTiendas de Ropa
Tiendas de RopaUniclick
 
Faire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPressFaire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPresscorsonr
 
Pourquoi WordPress est le CMS le plus sécurisé ?
Pourquoi WordPress est le CMS le plus sécurisé ?Pourquoi WordPress est le CMS le plus sécurisé ?
Pourquoi WordPress est le CMS le plus sécurisé ?Boiteaweb
 
[WordCamp Bordeaux] Fusionner sa politique print et web avec WordPress
[WordCamp Bordeaux] Fusionner sa politique print et web avec WordPress [WordCamp Bordeaux] Fusionner sa politique print et web avec WordPress
[WordCamp Bordeaux] Fusionner sa politique print et web avec WordPress Grillot Sébastien
 
Pourquoi coder son propre thème WordPress
Pourquoi coder son propre thème WordPressPourquoi coder son propre thème WordPress
Pourquoi coder son propre thème WordPressThomas Villain
 
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech NantesOuvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantescorsonr
 
Tu tienda virtual en Woocommerce
Tu tienda virtual en WoocommerceTu tienda virtual en Woocommerce
Tu tienda virtual en WoocommerceJavier Garcia
 

Destaque (20)

Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015
 
Comment créer des hooks dans vos développements WordPress - WP Tech 2015
Comment créer des hooks dans vos développements WordPress - WP Tech 2015Comment créer des hooks dans vos développements WordPress - WP Tech 2015
Comment créer des hooks dans vos développements WordPress - WP Tech 2015
 
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
 
Migrer les données de n'importe quel CMS vers WordPress
 Migrer les données de n'importe quel CMS vers WordPress Migrer les données de n'importe quel CMS vers WordPress
Migrer les données de n'importe quel CMS vers WordPress
 
WooCommerce: How to Customize WordPress via PHP Snippets
WooCommerce: How to Customize WordPress via PHP SnippetsWooCommerce: How to Customize WordPress via PHP Snippets
WooCommerce: How to Customize WordPress via PHP Snippets
 
PDFs à la volée avec TCPDF
PDFs à la volée avec TCPDFPDFs à la volée avec TCPDF
PDFs à la volée avec TCPDF
 
Making WooCommerce Your Own
Making WooCommerce Your OwnMaking WooCommerce Your Own
Making WooCommerce Your Own
 
Master WooCommerce Troubleshooting
Master WooCommerce TroubleshootingMaster WooCommerce Troubleshooting
Master WooCommerce Troubleshooting
 
El trabajo del Community Manager
El trabajo del Community ManagerEl trabajo del Community Manager
El trabajo del Community Manager
 
Cómo crear una tienda online en wordpress
Cómo crear una tienda online en wordpressCómo crear una tienda online en wordpress
Cómo crear una tienda online en wordpress
 
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC)
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC) Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC)
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC)
 
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)
 
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017
 
Tiendas de Ropa
Tiendas de RopaTiendas de Ropa
Tiendas de Ropa
 
Faire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPressFaire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPress
 
Pourquoi WordPress est le CMS le plus sécurisé ?
Pourquoi WordPress est le CMS le plus sécurisé ?Pourquoi WordPress est le CMS le plus sécurisé ?
Pourquoi WordPress est le CMS le plus sécurisé ?
 
[WordCamp Bordeaux] Fusionner sa politique print et web avec WordPress
[WordCamp Bordeaux] Fusionner sa politique print et web avec WordPress [WordCamp Bordeaux] Fusionner sa politique print et web avec WordPress
[WordCamp Bordeaux] Fusionner sa politique print et web avec WordPress
 
Pourquoi coder son propre thème WordPress
Pourquoi coder son propre thème WordPressPourquoi coder son propre thème WordPress
Pourquoi coder son propre thème WordPress
 
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech NantesOuvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
 
Tu tienda virtual en Woocommerce
Tu tienda virtual en WoocommerceTu tienda virtual en Woocommerce
Tu tienda virtual en Woocommerce
 

Semelhante a WPtech: L'API Customizer pour les plugins

Unit testing after Zend Framework 1.8
Unit testing after Zend Framework 1.8Unit testing after Zend Framework 1.8
Unit testing after Zend Framework 1.8Michelangelo van Dam
 
WordCamp LA 2014- Writing Code that Scales
WordCamp LA 2014-  Writing Code that ScalesWordCamp LA 2014-  Writing Code that Scales
WordCamp LA 2014- Writing Code that ScalesSpectrOMTech.com
 
WCMTL 15 - Create your own shortcode (Fr)
WCMTL 15 - Create your own shortcode (Fr)WCMTL 15 - Create your own shortcode (Fr)
WCMTL 15 - Create your own shortcode (Fr)MichaelBontyes
 
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)arcware
 
Doctrine For Beginners
Doctrine For BeginnersDoctrine For Beginners
Doctrine For BeginnersJonathan Wage
 
Meet Magento DE 2016 - Kristof Ringleff - Growing up with Magento
Meet Magento DE 2016 - Kristof Ringleff - Growing up with MagentoMeet Magento DE 2016 - Kristof Ringleff - Growing up with Magento
Meet Magento DE 2016 - Kristof Ringleff - Growing up with MagentoKristof Ringleff
 
[Bristol WordPress] Supercharging WordPress Development
[Bristol WordPress] Supercharging WordPress Development[Bristol WordPress] Supercharging WordPress Development
[Bristol WordPress] Supercharging WordPress DevelopmentAdam Tomat
 
2015.02.05 alexis von glasow - faster php testing process with atoum
2015.02.05   alexis von glasow - faster php testing process with atoum2015.02.05   alexis von glasow - faster php testing process with atoum
2015.02.05 alexis von glasow - faster php testing process with atouminovia
 
Steam Learn: Faster php testing process with Atoum
Steam Learn: Faster php testing process with AtoumSteam Learn: Faster php testing process with Atoum
Steam Learn: Faster php testing process with Atouminovia
 
AngularJS: What's the Big Deal?
AngularJS: What's the Big Deal?AngularJS: What's the Big Deal?
AngularJS: What's the Big Deal?Jim Duffy
 
前后端mvc经验 - webrebuild 2011 session
前后端mvc经验 - webrebuild 2011 session前后端mvc经验 - webrebuild 2011 session
前后端mvc经验 - webrebuild 2011 sessionRANK LIU
 
Using and reusing CakePHP plugins
Using and reusing CakePHP pluginsUsing and reusing CakePHP plugins
Using and reusing CakePHP pluginsPierre MARTIN
 
Yves & Zed @ Developer Conference 2013
Yves & Zed @ Developer Conference 2013Yves & Zed @ Developer Conference 2013
Yves & Zed @ Developer Conference 2013FabianWesnerBerlin
 
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Mike Schinkel
 
Using Geeklog as a Web Application Framework
Using Geeklog as a Web Application FrameworkUsing Geeklog as a Web Application Framework
Using Geeklog as a Web Application FrameworkDirk Haun
 
Security and Performance - Italian WordPress Conference
Security and Performance - Italian WordPress ConferenceSecurity and Performance - Italian WordPress Conference
Security and Performance - Italian WordPress ConferenceMaurizio Pelizzone
 
Ten Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsTen Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsAtlassian
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Michelangelo van Dam
 

Semelhante a WPtech: L'API Customizer pour les plugins (20)

Unit testing after Zend Framework 1.8
Unit testing after Zend Framework 1.8Unit testing after Zend Framework 1.8
Unit testing after Zend Framework 1.8
 
WordCamp LA 2014- Writing Code that Scales
WordCamp LA 2014-  Writing Code that ScalesWordCamp LA 2014-  Writing Code that Scales
WordCamp LA 2014- Writing Code that Scales
 
WCMTL 15 - Create your own shortcode (Fr)
WCMTL 15 - Create your own shortcode (Fr)WCMTL 15 - Create your own shortcode (Fr)
WCMTL 15 - Create your own shortcode (Fr)
 
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
 
QA for PHP projects
QA for PHP projectsQA for PHP projects
QA for PHP projects
 
Doctrine For Beginners
Doctrine For BeginnersDoctrine For Beginners
Doctrine For Beginners
 
Meet Magento DE 2016 - Kristof Ringleff - Growing up with Magento
Meet Magento DE 2016 - Kristof Ringleff - Growing up with MagentoMeet Magento DE 2016 - Kristof Ringleff - Growing up with Magento
Meet Magento DE 2016 - Kristof Ringleff - Growing up with Magento
 
[Bristol WordPress] Supercharging WordPress Development
[Bristol WordPress] Supercharging WordPress Development[Bristol WordPress] Supercharging WordPress Development
[Bristol WordPress] Supercharging WordPress Development
 
2015.02.05 alexis von glasow - faster php testing process with atoum
2015.02.05   alexis von glasow - faster php testing process with atoum2015.02.05   alexis von glasow - faster php testing process with atoum
2015.02.05 alexis von glasow - faster php testing process with atoum
 
Steam Learn: Faster php testing process with Atoum
Steam Learn: Faster php testing process with AtoumSteam Learn: Faster php testing process with Atoum
Steam Learn: Faster php testing process with Atoum
 
AngularJS: What's the Big Deal?
AngularJS: What's the Big Deal?AngularJS: What's the Big Deal?
AngularJS: What's the Big Deal?
 
前后端mvc经验 - webrebuild 2011 session
前后端mvc经验 - webrebuild 2011 session前后端mvc经验 - webrebuild 2011 session
前后端mvc经验 - webrebuild 2011 session
 
Using and reusing CakePHP plugins
Using and reusing CakePHP pluginsUsing and reusing CakePHP plugins
Using and reusing CakePHP plugins
 
Yves & Zed @ Developer Conference 2013
Yves & Zed @ Developer Conference 2013Yves & Zed @ Developer Conference 2013
Yves & Zed @ Developer Conference 2013
 
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
 
WordCamp Praga 2015
WordCamp Praga 2015WordCamp Praga 2015
WordCamp Praga 2015
 
Using Geeklog as a Web Application Framework
Using Geeklog as a Web Application FrameworkUsing Geeklog as a Web Application Framework
Using Geeklog as a Web Application Framework
 
Security and Performance - Italian WordPress Conference
Security and Performance - Italian WordPress ConferenceSecurity and Performance - Italian WordPress Conference
Security and Performance - Italian WordPress Conference
 
Ten Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsTen Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-ons
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12
 

Mais de corsonr

Un bloc WooTenberg pour un coworking associatif
Un bloc WooTenberg pour un coworking associatifUn bloc WooTenberg pour un coworking associatif
Un bloc WooTenberg pour un coworking associatifcorsonr
 
L'impact écologique d'Internet
L'impact écologique d'InternetL'impact écologique d'Internet
L'impact écologique d'Internetcorsonr
 
WooCommerce WP-CLI Basics
WooCommerce WP-CLI BasicsWooCommerce WP-CLI Basics
WooCommerce WP-CLI Basicscorsonr
 
Développez votre business en développant le business de vos clients
Développez votre business en développant le business de vos clientsDéveloppez votre business en développant le business de vos clients
Développez votre business en développant le business de vos clientscorsonr
 
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...corsonr
 
Wordcamp Paris 2013
Wordcamp Paris 2013Wordcamp Paris 2013
Wordcamp Paris 2013corsonr
 

Mais de corsonr (6)

Un bloc WooTenberg pour un coworking associatif
Un bloc WooTenberg pour un coworking associatifUn bloc WooTenberg pour un coworking associatif
Un bloc WooTenberg pour un coworking associatif
 
L'impact écologique d'Internet
L'impact écologique d'InternetL'impact écologique d'Internet
L'impact écologique d'Internet
 
WooCommerce WP-CLI Basics
WooCommerce WP-CLI BasicsWooCommerce WP-CLI Basics
WooCommerce WP-CLI Basics
 
Développez votre business en développant le business de vos clients
Développez votre business en développant le business de vos clientsDéveloppez votre business en développant le business de vos clients
Développez votre business en développant le business de vos clients
 
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...
 
Wordcamp Paris 2013
Wordcamp Paris 2013Wordcamp Paris 2013
Wordcamp Paris 2013
 

Último

Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Lucknow
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 

Último (20)

Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 

WPtech: L'API Customizer pour les plugins

  • 1. L'API CUSTOMIZER POUR LES PLUGINS © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 2. REMICORSONAUTOMATTIC / WOOTHEMES / WOOCOMMERCE @REMICORSON - REMICORSON.COM © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 3. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 4. L'EMETTEUR EST TOUJOURS RESPONSABLE DE L'IMCOMPREHENSION DE SON MESSAGE© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 5. EXEMPLES © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 6. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 7. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 8. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 9. PENDANT CE TEMPS... © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 10. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 11. ET POUR LES PLUGINS ? © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 12. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 13. 3 POSSIBILITÉS © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 14. > Hooker les options du thème > Hooker Les options de votre plugin > Hooker les options d'un autre plugin © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 15. DEMO© REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 16. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 17. 8 ETAPES © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 18. 1 - AJOUTER UN BOUTON © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 19. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 20. // Ajout d'options aux paramètres existants add_action( 'woocommerce_products_general_settings', array( $this, 'product_settings' ) ); © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 21. public function product_settings( $settings ) { // Configuration du bouton $customizer_settings[] = array( 'title' => __( 'WooCommerce Customizer', '' ), 'type' => 'title', 'id' => 'product_customizer', ); $customizer_settings[] = array( 'title' => __( 'Pimp my shop!', '' ), 'desc' => __( 'Customize WooCommerce', '' ), 'type' => 'wc_product_customize_button', 'id' => 'product_customizer_button', 'link' => $this->customizer_url, // Attention ! ); $customizer_settings[] = array( 'type' => 'sectionend', 'id' => 'product_customizer_sectionend', ); $settings = array_merge( $customizer_settings, $settings ); return $settings; } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 22. // Ajout d'une action pour notre bouton add_action( 'woocommerce_admin_field_wc_product_customize_button', array( $this, 'customize_button' ) ); © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 23. // Création du rendu du bouton public function customize_button( $settings ) { ?> <tr valign="top"> <th scope="row" class="titledesc"><?php echo $settings['desc'];?></th> <td class="forminp forminp-<?php echo sanitize_title( $settings['type'] ) ?>"> <a href="<?php echo $settings['link']; ?>"> <button name="<?php echo esc_attr( $settings['id'] ); ?>" id="<?php echo esc_attr( $settings['id'] ); ?>" style="<?php echo esc_attr( $settings['css'] ); ?>" class="button-secondary <?php echo esc_attr( $settings['class'] ); ?>" type="button"> <?php echo $settings['title']; ?> </button> </a> </td> </tr> <?php return true; } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 24. 2 - DÉTERMINER L'URL DU CUSTOMIZER © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 25. /** * Constructeur */ public function __construct() { self::$_this = $this; $this->_set_customizer_url(); //... } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 26. // Définition de l'URL du Customizer private function _set_customizer_url() { $url = admin_url( 'customize.php' ); $url = add_query_arg( 'wc-product-customizer', 'true', $url ); $url = add_query_arg( 'url', wp_nonce_url( site_url() . '/?wc-product-customizer=true', 'preview-shop' ), $url ); // Passage d'un marqueur d'URL $url = add_query_arg( 'return', urlencode( add_query_arg( array( 'page' => 'wc-settings', 'tab' => 'products' ), admin_url( 'admin.php' ) ) ), $url ); // URL de retour $this->customizer_url = esc_url_raw( $url ); return true; } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 27. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 28. 3 - CRÉER LES OPTIONS DU CUSTOMIZER © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 29. add_filter( 'customize_register', array( $this, 'customizer_sections' ), 40 ); add_filter( 'customize_register', array( $this, 'customizer_settings' ) ); add_filter( 'customize_register', array( $this, 'customizer_controls' ), 50 ); © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 30. // Ajout de section $wp_customize->add_section( 'wc_product_colors', array ( 'title' => __( 'WooCommerce', '' ), 'capability' => 'edit_theme_options', 'priority' => 10, ) ); © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 31. $wp_customize->add_setting( 'woocommerce_buttons_background_color', array( 'type' => 'option', // Attention ! 'default' => '#f5f5f5', 'transport' => 'postMessage', ) ); © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 32. $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'wc_product_bg_color_control', array( 'label' => __( 'Button Background Color', '' ), 'priority' => 10, 'section' => 'wc_product_colors', 'settings' => 'woocommerce_buttons_background_color', ) ) ); © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 33. 4 - CHARGER LA PAGE CONCERNÉE © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 34. // Redirection du customizer sur la page boutique add_action( 'template_redirect', array( $this, 'load_shop_page' ) ); © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 35. public function load_shop_page( $wp_query ) { // chargement conditionnel basé sur get_query_var if ( get_query_var( $this->_trigger ) ) { wp_redirect( get_permalink( get_option( 'woocommerce_shop_page_id' ) ) ); exit; } return $wp_query; } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 36. PETITE PAUSE © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 37. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 38. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 39. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 40. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 41. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 42. 5 - AJOUTER UN MARQUEUR © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 43. public function __construct() { self::$_this = $this; // Définition d'un marqueur d'URL $this->_trigger = 'wc-product-customizer'; } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 44. // Ajout du marqueur dans l'URL add_filter( 'query_vars', array( $this, 'add_query_vars' ) ); © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 45. public function add_query_vars( $vars ) { $vars[] = $this->_trigger; return $vars; } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 46. 6 - FAIRE UN NETTOYAGE DE PRINTEMPS © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 47. if ( isset( $_GET[ $this->customizer_trigger ] ) ) { //... } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 48. // Suppression des options du thème add_filter( 'customize_register', array( $this, 'remove_sections' ), 40 ); © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 49. public function remove_sections( $wp_customize ) { global $wp_customize; $wp_customize->remove_section( 'themes' ); return true; } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 50. // Supprime les panels non désirés public function remove_panels( $wp_customize ) { global $wp_customize; // crée une erreur de type 'undefined object notice' // bug WordPress core //$wp_customize->remove_panel( 'nav_menus' ); // Astuce $wp_customize->get_panel( 'nav_menus' )->active_callback = '__return_false'; return true; } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 51. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 52. 7 - AJOUT DE CSS & JS © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 53. ( function( $ ) { 'use strict'; wp.customize( 'woocommerce_buttons_background_color', function( value ) { value.bind( function( newval ) { $( '.button' ).css( 'background-color', newval ); } ); } ); } )( jQuery ); © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 54. public function enqueue_customizer_script() { wp_enqueue_script( 'woocommerce-product-customizer-live-preview', WC_PRODUCT_CUSTOMIZER_PLUGIN_URL . '/assets/js/customizer.js', array( 'jquery', 'customize-preview' ), WC_PRODUCT_CUSTOMIZER_VERSION, true ); return true; } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 55. add_filter( 'wp_footer', array( $this, 'add_styles' ) ); © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 56. public function add_styles() { $styles = "n<style type='text/css' media='screen'>n"; $bg_color = '.woocommerce a.button { background-color: '; $bg_color .= get_option( 'woocommerce_buttons_background_color', '#f5f5f5' ) $bg_color .= '; }'; $styles .= $bg_color; $styles .= "n</style>n"; echo $styles; } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 57. 8 - LUSTRER LA BÊTE... © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 58. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 59. © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 60. // Afficher uniquement nos options if ( isset( $_GET[ $this->customizer_trigger ] ) ) { add_filter( 'customize_control_active', array( $this, 'control_filter' ), 10, 2 ); } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 61. public function control_filter( $active, $control ) { if ( in_array( $control->section, array( 'wc_product_colors' ) ) ) { return true; } return false; } © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 62. QUESTIONS ? © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015
  • 63. RDV À 14H00AVEC JULIEN OGER & PIERRE DARGHAM " PENSEZ WEB-PERFORMANCE AVEC WORDPRESS " © REMI CORSON 2015 - WPtech Nantes 5 Déc. 2015