siamo autori - Evitare di perdere funzionalità aggiunte al primo update del plugin - Evitare di riscrivere logiche di funzionamento già implementate dal plugin scelto come base di partenza - Modificare il comportamento di un plugin in base ai nostri requisiti ed alle nostre necessità WordPress Meetup Catania - Francesco Grasso - Child Plugins
quello di Child Theme I Child Theme seguono un’impostazione fissa e ben definita da WordPress. Hanno una sezione nel file principale del child che identifica il tema di partenza, impedendo l’attivazione qualora il “parent” fosse non disponibile o danneggiato. WordPress Meetup Catania - Francesco Grasso - Child Plugins
i più basilari standard di programmazione ed i suggerimenti del modello di sviluppo WordPress. Es. - se una funzione/metodo restituisce un valore, questo deve avere un filtro - se il plugin fa uso di template, questi devono essere richiamati secondo una procedura che prevede un overwrite (vedi WooCommerce) - all’interno dei template prevedere sempre delle action per “iniettare” nuovi elementi WordPress Meetup Catania - Francesco Grasso - Child Plugins
effetti un normalissimo plugin per WordPress! Assicurati ovviamente che questo non abbia lo stesso nome del plugin di partenza. Non è richiesto un esplicito riferimento al plugin di partenza nell’heading section del plugin. WordPress Meetup Catania - Francesco Grasso - Child Plugins
Sfruttare gli Hooks (Action e Filter) - Annullare completamente alcune funzioni/metodi - Sovrascrivere template - Creare un Fork di un plugin WordPress Meetup Catania - Francesco Grasso - Child Plugins
qui” Possono completamente stravolgere il normale flusso della procedura Filter Hooks Si usano per “modificare” il valore di ritorno di una procedura Accettano uno o più parametri in ingresso Non modificano il normale flusso della procedura WordPress Meetup Catania - Francesco Grasso - Child Plugins
codice vario della funzione } Nel Child Plugin potremmo interagire sui parametri ($args1,$args2) sfruttando l’hook 'slug_il_mio_action_hook' add_action('slug_il_mio_action_hook','funzione_hook_callback'); function funzione_hook_callback(){ // Codice vario qui } WordPress Meetup Catania - Francesco Grasso - Child Plugins
$output,$args1,$args2); } Nel Child Plugin potremmo interagire sull’output sfruttando l’hook 'slug_il_mio_action_hook' add_filter('slug_il_mio_action_hook','funzione_hook_callback'); function funzione_hook_callback(){ // Codice vario qui } WordPress Meetup Catania - Francesco Grasso - Child Plugins
opportuni hook il plugin viene modificato dal child - Non è necessario apportare modifiche al parent (anche se ne sei l’autore) - Ad ogni update del parent devi verificare che la funzione “sovrascritta” sia ancora utilizzata in quel modo - Il Fatal error è dietro l’angolo - Potresti essere costretto a scrivere un sacco di codice e riscrivere mezzo plugin WordPress Meetup Catania - Francesco Grasso - Child Plugins
per questo. Alcuni riferimenti: https://docs.woocommerce.com/wc-apidocs/function-wc_locate_template.html http://hookr.io/functions/wc_locate_template/ WordPress Meetup Catania - Francesco Grasso - Child Plugins
sfruttare hooks e sovrascrivere template Come agire: - Assicurarsi di avere sotto controllo di versione il parent (GIT/SVN) - Creare un branch - Rinominare il plugin e apportare le modifiche - Periodicamente fare il merge da master a nostro branch - Attribuire il codice di partenza all’autore del parent - Sottoporre le tue modifiche all’autore del plugin per eventuale integrazione tramite pull request (se sotto git) WordPress Meetup Catania - Francesco Grasso - Child Plugins
(Action e Filter) - Annullare completamente alcune funzioni/metodi - Sovrascrivere template - Creare un Fork di un plugin WordPress Meetup Catania - Francesco Grasso - Child Plugins