Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme PHP Deprecated: non-static method

Sujet résolu
    26 janvier 2017 à 17:58:31

    Salut à tous,

    je cherchais ce qui causait un bug sur mon site wordpress et je viens de me rendre compte que c'est une extension.
    J'ai ces code erreur :

    Deprecated: non-static method BPLimitGroupMembership::Get_limit() Should not be called statically in .../wp-content/plugins/bplimitgroupmembership/bp-limit-group-membership-per-user.php on line 52
    
    Deprecated: non-static method BPLimitGroupMembership::Get_group_count() Should not be called statically in .../wp-content/plugins/bplimitgroupmembership/bp-limit-group-membership-per-user.php on line 61


    Voici le  code fautif :

        public static function can_join(){
           
            $limit = self::get_limit();
            if( is_super_admin() )
                return true;
            //if user is not logged in or the limit is set to zero, return false
            if( !( is_user_logged_in() && $limit ) )
                return false;
            
            $user_id = bp_loggedin_user_id();
            //check how many groups the user has already joined
            $group_count = self::get_group_count( $user_id );//get_user_meta( $user_id, 'total_group_count', true );
          
            if( $group_count < $limit )
                return true;
            
            return false;
        }

    et les lignes en questions:

    ligne 52: $limit = self::get_limit();
    Et ligne 61: $group_count = self::get_group_count( $user_id );


    Quelqu'un peut m'aider à comprendre le problème ?
    Merci.

    • Partager sur Facebook
    • Partager sur Twitter
      26 janvier 2017 à 18:15:38

      Bonjour,

      Tes méthodes get_limit et get_group_count ont bien "static" dans la déclaration de la méthode ?

      Après comme c'est spécifié les méthodes static sont déprécié il serait mieux donc d'instancier ta classe et faire appel a la méthode

      • Partager sur Facebook
      • Partager sur Twitter
      Voir une araignée c'est rien ... Le pire c'est quand tu ne la vois plus !
        26 janvier 2017 à 18:18:09

        Bonjour Hsuissia, merci pour ta réponse.
        Alors en fait ce n'est pas mon plugin, je tente juste de rendre compatible un plugin qui m'est bien utile et qui n'est malheureusement plus mise à jour.
        Voici la partie du code:


        /**
        * Plugin Name:BP Limit Group Membership
        * Plugin URI:http://buddydev.com/plugins/bp-limit-group-membership/
        * Author: Brajesh Singh
        * Author URI: http://buddydev.com/members/sbrajesh
        * Version : 1.0.4
        * License: GPL
        * Description: Restricts the no. of Groups a user can join
        */
        /**
        * Special tanks to Matteo for reporting the issue /helping with code suggestion for the case when user opens the join link directly
        */
        class BPLimitGroupMembership{
        
            private static $instance;
        
            private function __construct() {
        
                add_action( 'wp_footer', array( $this, 'ouput_js' ), 200 );//we filter the invite list using javascript, in 1.6, we won't need it
                add_action( 'bp_get_group_join_button', array( $this, 'fix_join_button' ), 100 );//remove the group join button
                add_filter( 'bp_groups_auto_join', array( $this, 'can_join' ) );///check if we can allow autojoin
        
                add_action( 'wp', array( $this, 'check_group_create' ), 2 );//check if group can be created
                add_action( 'init', array( $this, 'remove_hook' ), 2 );//remove the bp hooks
               //ajaxed join/leave
                add_action( 'wp_ajax_joinleave_group', array( $this, 'ajax_joinleave_group' ) );
                //for normal bp action(when a user opens the join link), thanks to Matteo
                add_action( 'bp_actions', array( $this, 'action_join_group' ) );
        
                //add_filter('bp_core_admin_screen',array($this,'limit_group_join_admin_screen'));//show super admin option to set the maximum no.
            }
        
            public static function get_instance(){
                if( !isset ( self::$instance ) )
                    self::$instance = new self();
        
                return self::$instance;
            }
        
            public function get_limit(){
                return apply_filters( 'bp_limit_group_membership_limit', bp_get_option( 'group_membership_limit', 0 ) );
            }
            public function get_group_count( $user_id ){
                global $bp, $wpdb;
        
        	return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m WHERE m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0", $user_id ) );
        
            }
          

        -
        Edité par TonariTotoro 27 janvier 2017 à 14:13:33

        • Partager sur Facebook
        • Partager sur Twitter
          27 janvier 2017 à 0:28:51

          Donc en effet, tu fais un appel static de ces deux fonction :

          public function get_limit(){
                  return apply_filters( 'bp_limit_group_membership_limit', bp_get_option( 'group_membership_limit', 0 ) );
              }
              public function get_group_count( $user_id ){
                  global $bp, $wpdb;
           
              return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m WHERE m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0", $user_id ) );
           
              }

          Alors qu'elle ne sont pas déclaré comme tel :

          public static function get_limit(){

          • Partager sur Facebook
          • Partager sur Twitter
          Voir une araignée c'est rien ... Le pire c'est quand tu ne la vois plus !
            27 janvier 2017 à 10:07:51

            Ah yes merci , du coup en effet j'ai plus mon erreur php maintenant.
            Par contre l'extension cause toujours un conflit avec mon site et buddypress.
            Et ya pas d'autre erreur en rapport avec cette extension.
            En tout cas merci pour ton aide Hsuissia :)
            • Partager sur Facebook
            • Partager sur Twitter
              27 janvier 2017 à 13:40:32

              C'était avec plaisir. Bon courage pour la suite :) 

              • Partager sur Facebook
              • Partager sur Twitter
              Voir une araignée c'est rien ... Le pire c'est quand tu ne la vois plus !
                20 janvier 2018 à 23:27:09

                bonjour meme probleme

                Deprecated: Non-static method Connexion::_get() should not be called statically in C:\nginx\html\class\class_connexion.php on line 35


                code :

                public static function query($query) {
                        if (is_null(self::$_pdo)) {
                            self::_get();
                        }



                ligne 35 : self::_get();

                -
                Edité par NicolasMoinet 20 janvier 2018 à 23:31:02

                • Partager sur Facebook
                • Partager sur Twitter

                Probleme PHP Deprecated: non-static method

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown