SlideShare a Scribd company logo
1 of 63
Download to read 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

More Related Content

What's hot

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
 

What's hot (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
 

Viewers also liked

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
 

Viewers also liked (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
 

Similar to 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
 
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
 
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
 
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
 

Similar to 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
 
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
 
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
 
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
 

More from 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
 

More from 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
 

Recently uploaded

2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge GraphsEleniIlkou
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdfMatthew Sinclair
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdfMatthew Sinclair
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftAanSulistiyo
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirtrahman018755
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsMonica Sydney
 
75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptxAsmae Rabhi
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Roommeghakumariji156
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"growthgrids
 
Power point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria IuzzolinoPower point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria Iuzzolinonuriaiuzzolino1
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样ayvbos
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...gajnagarg
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制pxcywzqs
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdfMatthew Sinclair
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查ydyuyu
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdfMatthew Sinclair
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.krishnachandrapal52
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtrahman018755
 

Recently uploaded (20)

2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck Microsoft
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 
75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
Power point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria IuzzolinoPower point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria Iuzzolino
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 

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