Soporte » Plugins y Hacks » ayuda llamando a una funcion

  • Hola necesito ayuda amigos , cuando intento llamar a una funcion adentro de un condicional IF no me funciona no me manda mensaje de error simplemente no hace nada, aqui pongo mi codigo de la funcion:

    function my_custom_login_stylesheet() {
    ?>
      <style type="text/css">               
        body.login div#login p#backtoblog {
          display: none;
        }
       </style>
    <?php 
    }
    

    ahora cuando intento llamar esa funcion add_action( 'login_enqueue_scripts', 'my_custom_login_stylesheet' ); mas adelante adentro de un condifional IF simplemente no funciona como hago para que tome el codigo.

    muchas gracias de antemano.

    PD: el codicional IF funciona perfecto ya que he logrado mostar un mensaje cuando esta activo.

    • Este debate fue modificado hace 4 años, 2 meses por José Arcos.
Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • Moderador José Arcos

    (@josearcos)

    Hola, @gigasize777. Supongo que estarás usando el hook login_enqueue_scripts a propósito para cargar ese estilo sólo en la página de login, en caso contrario, tendrías que usar el hook wp_enqueue_scripts para que tu estilo se cargue en todo tu sitio.

    ¿Puedes mostrarnos ese condicional donde estás intentando cargar la función?

    Por otro lado, te recomiendo que no uses CSS en PHP, aunque es un código pequeño, pero no es una buena práctica. Quizá sea mejor buscar el archivo de estilos de tu tema y cargar esa función añadiendo alguna clase que identifique a la página de login, como la que estás usando body.login.

    Espero que te haya servido de ayuda, un saludo.

    Iniciador del debate gigasize777

    (@gigasize777)

    Si solo busco modificar el login, aqui te dejo el codigo IF

     <?php
                
                if ( $test_option == 'yes' ) { 
                    echo 'Encendido'; 
    
        add_action( 'login_enqueue_scripts', 'my_custom_login_stylesheet' );
                                                      
                } 
                
    
                
                else {
                    echo 'Apagado';
                }
                
            }
    
    Moderador José Arcos

    (@josearcos)

    Ese código no me dice mucho más, ¿que hay en la variable test_option? ¿Puedes poner el contenido del archivo al completo?

    Iniciador del debate gigasize777

    (@gigasize777)

    aqui te pongo el codigo completo:

    <?php
    
    function my_custom_login_stylesheet() {?>
                     <style type="text/css">
                     
                     body.login div#login p#backtoblog {
    display: none;
                     }
    
       
       </style>
                  <?php 
                  
                     }
    
    defined( 'ABSPATH' ) || exit;
            
    if ( ! class_exists( 'MP_Test_Plugin' ) ) :
    
        class MP_Test_Plugin {
    
            public function __construct() {
              
                add_action( 'admin_menu', array( $this, 'setup_menu' ) );
                add_action( 'admin_init', array( $this, 'register_options' ) );
    
            }
            
            public function setup_menu() {
                           add_menu_page( 'Test Plugin Page', 'Test Plugin', 'manage_options', 'test-plugin', array( $this, 'test_menu_page' ), 'dashicons-smiley' );
            }
    
            public function test_menu_page() { 
            
            
                if ( isset( $_POST['option_page'] ) && $_POST['option_page'] == 'mp_settings_group' ) {
                    if ( isset( $_POST['test_init'] ) ) {
                        update_option( 'test_init', 'yes' );
                    } else {
                        update_option( 'test_init', 'no' );
                    }
                }
                
     
                              
                
                $test_option = get_option( 'test_init', 'no' );
                ?>
                <div class="wrap">
                    <h1>Plugin</h1>
                    <form method="post"> 
                        <?php settings_fields( 'mp_settings_group' ); ?>
                        <?php do_settings_sections( 'mp_settings_group' ); ?>
                        <input type="checkbox" name="test_init" value="<?php echo $test_option; ?>" <?php checked( $test_option, 'yes' ); ?> id="test_init" /><label for="test_init"> Activado?</label>
                            <?php submit_button(); ?>
                    </form>
                </div>
    
                <?php
                
                if ( $test_option == 'yes' ) { 
                    echo 'Activado'; 
                                  
            add_action( 'login_enqueue_scripts', 'my_custom_login_stylesheet' );   
    
                    
                } 
                
                
                else {
                    echo 'Desactivado';
                }
                
            }
    
            public function register_options() {
                register_setting( 'mp_settings_group', 'test_init' ); 
            } 
        }
        
    endif;
    
    if ( is_admin() ) { 
        new MP_Test_Plugin();
    }
    Moderador José Arcos

    (@josearcos)

    Hola, @gigasize777. Disculpa que te moleste de nuevo, pero ese código está incompleto y lleno de errores. No veo por ningún lado el hook login_enqueue_scripts. Quizá puedas subir todo tu código a algún repositorio, como GitHub y ahí podamos mirarlo. Aunque no brindamos consultoría técnica en el foro, pero intento ayudarte para descubrir dónde está el problema, pero sin la información necesaria poco puedo hacer.

    Un saludo.

    Iniciador del debate gigasize777

    (@gigasize777)

    Si en efecto no se esta usando «login_enqueue_scripts» pero asi lo borre no cambia nada sigue sin funcionar lo que quiero es llamar la funcion «my_custom_login_stylesheet» adentro de ese IF, ese es todo el codigo que tengo

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • El debate ‘ayuda llamando a una funcion’ está cerrado a nuevas respuestas.