• David

    (@dvdmrnjcbssn)


    Hola,

    Necesito añadir un campo para subir un pdf en el formulario de registro, y que ese pdf se visualice en una columna nueva en la pagina del backoffice de usuarios, para así poder ver el pdf que sube cada usuario registrado.

    Existe algún plugin para ello?

    Gracias

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 1 respuesta (de un total de 1)
  • Iniciador del debate David

    (@dvdmrnjcbssn)

    Intente hacerlo por código usando el ChatGPT, pero no funciona correctamente. Creo que el problema esta al guardar el pdf, ya que no se me crea la carpeta donde debería en la carpeta de medios.

    // Agregar el campo "Sociedad" al formulario de registro
    function agregar_campo_sociedad_registro() {
        ?>
        <p class="form-row">
            <label for="sociedad">Sociedad</label>
            <input type="file" name="sociedad" id="sociedad" accept=".pdf">
        </p>
        <?php
    }
    add_action('woocommerce_register_form', 'agregar_campo_sociedad_registro');
    
    
    
    
    // Guardar el PDF subido por los usuarios
    function guardar_sociedad_usuario($user_id) {
        if (!empty($_FILES['sociedad']['name'])) {
            $sociedad_file = $_FILES['sociedad'];
            $upload_dir = wp_upload_dir();
            $upload_path = $upload_dir['basedir'] . '/sociedad/';
            
            if (!file_exists($upload_path)) {
                wp_mkdir_p($upload_path);
            }
            
            $file_name = sanitize_file_name($sociedad_file['name']);
            move_uploaded_file($sociedad_file['tmp_name'], $upload_path . $file_name);
            update_user_meta($user_id, 'sociedad', $file_name);
        }
    }
    add_action('woocommerce_created_customer', 'guardar_sociedad_usuario');
    
    
    
    // Mostrar columna con el enlace al PDF en la página de usuarios
    function mostrar_columna_sociedad($columns) {
        $columns['sociedad'] = 'Sociedad PDF';
        return $columns;
    }
    add_filter('manage_users_columns', 'mostrar_columna_sociedad');
    
    function mostrar_valor_columna_sociedad($value, $column_name, $user_id) {
        if ($column_name === 'sociedad') {
            $file_name = get_user_meta($user_id, 'sociedad', true);
            if (!empty($file_name)) {
                $upload_dir = wp_upload_dir();
                $sociedad_url = $upload_dir['baseurl'] . '/sociedad/' . $file_name;
                $value = '<a href="' . esc_url($sociedad_url) . '" target="_blank">Ver PDF</a>';
            }
        }
        return $value;
    }
    add_filter('manage_users_custom_column', 'mostrar_valor_columna_sociedad', 10, 3);
    
    
    
    // Agregar enlace para descargar el PDF en el perfil del usuario en el backend
    function agregar_enlace_descargar_pdf() {
        $user_id = get_current_user_id();
        $file_name = get_user_meta($user_id, 'sociedad', true);
        if (!empty($file_name)) {
            $upload_dir = wp_upload_dir();
            $sociedad_path = $upload_dir['basedir'] . '/sociedad/' . $file_name;
            if (file_exists($sociedad_path)) {
                echo '<h2>Sociedad PDF</h2>';
                echo '<a href="' . esc_url($sociedad_path) . '" download>Descargar PDF</a>';
            }
        }
    }
    add_action('show_user_profile', 'agregar_enlace_descargar_pdf');
    add_action('edit_user_profile', 'agregar_enlace_descargar_pdf');

    Muchas gracias

Viendo 1 respuesta (de un total de 1)
  • El debate ‘Subir pdf al registrarse y poder visualizarlo en el backoffice’ está cerrado a nuevas respuestas.