WooCommerce’i laienduse loomisel on oluline arvestada, et kui laiendus on aktiveeritud, ei pruugi kasutajal olla WooCommerce installitud ega aktiivne.
Ja kuigi laiendus võib aktiveeruda, ei tee see midagi. See võib lõppkokkuvõttes tekitada kasutajas segadust.
Sellistel juhtudel on minu arvates oluline veenduda, et laienduse saab aktiveerida ainult siis, kui põhiplugin on installitud ja aktiivne.
WooCommerce’i laienduse aktiveerimine
Kuigi mõned WooCommerce’i laiendused on teistega sarnased, võib nende rakendamine erineda. See tähendab, et ühe laiendi kirjutamise viis võib kasutada teises täiesti erinevat paradigmat.
Igal juhul, kui otsustate midagi sellist teha, kaaluge järgmist.
- Määratlege klass, mis algab pistikprogrammi käivitamisel,
- Kontrollige, kas WooCommerce on aktiivne,
- Kui jah, siis laadige kõik muud sõltuvused,
- Kui ei, siis deaktiveerige pistikprogramm automaatselt.
See tundub palju tööd, kuid see pole nii palju koodi. Samuti võite kaaluda kohandatud pistikprogrammi teatise lisamist, kui aktiveerimine on keelatud, kuid ma kirjeldan, kuidas seda teha tulevases postituses.
1 Määratlege klass
Üldiselt arvan, et pistikprogrammi käivitamise ja peatamise funktsiooni olemasolu on hea mõte. Kui WooCommerce on aktiivne, saate käivitada kogu laienduse; vastasel juhul peame selle aktiveerimise peatama.
Selleks saame iga funktsiooni jaoks haakida konksu admin_init .
<?php
class Extension_For_WooCommerce {
public function init() {
add_action( 'admin_init', array( $this, 'start') );
add_action( 'admin_init', array( $this, 'stop') );
}
}
Kui pistikprogramm käivitatakse WordPressi administraatorilt, tuleb peamise pistikprogrammi sisestusfunktsioonist programmiliselt välja kutsuda init-funktsioon.
2 Kontrollige, kas WooCommerce on aktiivne
Enne kummagi funktsiooni rakendamist peame siiski kontrollima, kas WooCommerce’i pistikprogramm on aktiivne. Tavaliselt on ohutu eeldada, et WooCommerce asub fikseeritud kataloogis, mida see kood teeb :
<?php
private function woocommerce_is_active() {
return is_plugin_active( 'woocommerce/woocommerce.php' );
}
Kui aga WooCommerce asub mujal, peate võib-olla selle leidmiseni mõne muu kontrollimise tegema.
3 Laadige sõltuvused
Käivitusfunktsioonis, kui WooCommerce on aktiivne, saame laadida pistikprogrammi ülejäänud komponendid :
<?php
public function start() {
if (! $this->woocommerce_is_active()) {
return;
}
// Load dependencies.
}
Kuid WooCommerce ei pruugi olla aktiivne.
4 Või peatage aktiveerimine
Ja kui WooCommerce pole aktiivne, peame selle pistikprogrammi aktiveerimise peatama :
<?php
public function stop() {
if (! $this->woocommerce_is_active()) {
deactivate_plugins( plugin_basename( __FILE__) );
unset( $_GET['activate'] ); // Input var okay.
}
}
Pange tähele, et isegi kui teete selle koodi pistikprogrammi hulgiaktiveerimise, ei pruugi see kood töötada. Siin on põhjus:
- WordPress töötab läbi pistikprogrammide loendi, mida ta peab aktiveerima.
- Kui WooCommerce pole enne laiendust aktiveeritud, siis laienduse aktiveerimine ebaõnnestub.
Teine võimalus sellele lähenemiseks oleks aktiveerida WooCommerce, kui see pole veel aktiivne.
Kohandatud sõnumid
Nagu varem mainitud, on minu arvates hea mõte anda pistikprogrammi aktiveerimisest keeldumisel teatud tüüpi haldusteade, kuid see ei kuulu selle õpetuse raamesse.
Igal juhul pakub ülaltoodud kood ühte võimalust WooCommerce’i laienduse potentsiaalseks aktiveerimiseks.