Où placer register_activation_hook() en POO ? (Créer un compte)

  • Statut : non résolu
3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #464785
    Flinx
    Participant
    Initié WordPress
    1 contributions

    Salut,

    Je développe actuellement un plugin sous WP 2.6.3. Il fonctionne bien mis à part ce petit soucis…
    En fait j’ai besoin d’une option pour ce plugin. Cette option doit avoir une valeur par défaut, donc je la crée dès l’activation du plugin, via une fonction appelée avec register_activation_hook().

    Le problème c’est que cette fonction n’est jamais appelée…

    J’utilise la POO pour ce plugin, et register_activation_hook() se situe dans la fonction init() appelée quand le plugin est chargé (avec l’action ‘plugins_loaded’).

    Voici le code qui résume tout ça :

    class PNFortunes
    {
    function __construct()
    {
    add_action(‘plugins_loaded’, array(&$this, ‘init’));
    }

    function init()
    {
    register_activation_hook(__FILE__, array(&$this, ‘install’));
    register_deactivation_hook(__FILE__, array(&$this, ‘uninstall’));
    }

    function install()
    {
    global $wpdb;
    add_option(‘PNFortunes_title’, ‘Quote du moment’);
    }

    function uninstall()
    {
    global $wpdb;
    delete_option(‘PNFortunes_title’);
    }
    }

    $pnfortunes = new PNFortunes();

    À noter que la méthode uninstall(), elle, est bien appelée.

    Donc ma question serait la suivante : d’où vient ce bug ? Ai-je mal placé la fonction ? Si oui, où la placer ?

    Merci d’avance !

    #651675
    nikita0511
    Membre
    Initié WordPress
    1 contributions

    Salut,

    Aurais tu depuis trouvé une solution? Car j’ai a peu près le même soucis.

    merci

    #651676
    Chris CB
    Participant
    Initié WordPress
    18 contributions

    Pareil Nikita…. et il semblerait pas qu’il y ai beaucoup de réponse.

    J’ai aussi le problème avec ce hook… Je constate d’ailleurs que quand on termine la method install() avec un exit, on génère certes une erreur à l’installation. Quand on enlève le exit, par contre, ça ne marche plus. J’aimerais bien qu’on nous aide sur ce coup là, mais toutes les demandes sur le site worpdress anglais reste sans réponse. Dur la vie de développeur 😉

3 sujets de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.