Respuestas de foro creadas

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • Iniciador del debate delerean

    (@delerean)

    Hola Nilo,

    Efectivamente el Filesystem API no era la solución. Pero también efectivamente, tirando por ahí he llegado a la solución, así que millones de gracias por intentarlo porque has guiado por el buen camino a un hombre perdido y desesperado 🙂

    Además de paso he aprendido un montón más del core de WP, del WP_Filesystem, y de cómo programar mejor (mira qué hora es y llevaba leyendo desde que me has contestado xD).

    Dejo el código que me ha salvado la vida, no sabría explicar 100% por qué funciona porque el error era de permisos y no veo la relación, pero hasta donde llego a entender, es necesario cargar la función wp_enqueue_media() para cargar correctamente el JS necesario para el Media Uploader (+ info aquí)

    function add_media_upload_scripts() {
        if ( is_admin() ) {
             return;
           }
        wp_enqueue_media();
    }
    add_action('wp_enqueue_scripts', 'add_media_upload_scripts');

    Si alguien puede arrojar más luz sobre el asunto bienvenido sea.

    PD: Uso Machete en mis WP y está genial! 😀

    Iniciador del debate delerean

    (@delerean)

    Ah! Y también he probado con ese pequeño hack que me he encontrado googleando y tampoco:

    add_filter('ure_restrict_edit_post_type', 'exclude_posts_from_edit_restrictions');
    function exclude_posts_from_edit_restrictions($post_type) {
      $restrict_it = true;
      if (current_user_can('upload_files')) {
          if ($post_type=='attachment') {
    	        $restrict_it = false;
          }
      }
      return $restrict_it;
    }
    Iniciador del debate delerean

    (@delerean)

    Hola José,

    Sisi, el post se crea perfectamente. Es simplemente que en el campo para el contenido del CPT quiero que el usuario pueda subir imagenes. Para ello he añadido el botón de «Añadir objeto» con WP_editor():

    add_action( 'gform_field_input', 'kmk_gforms_wp_editor', 10, 5 ); 
    function kmk_gforms_wp_editor( $input, $field, $value, $lead_id, $form_id ) {
    	if( $field->cssClass == 'kmk-editor' ) {
    		ob_start();
    		wp_editor( $value, "input_{$form_id}_{$field->id}",
    	  		array(
    				'media_buttons' => true,
    				'textarea_name' => "input_{$field->id}"
    			)	);
    		$input = ob_get_clean();
    	}
    	return $input;
    }

    Hasta aquí todo OK. El botón aparece y se carga el popup de la biblioteca.

    Después he añadido las CAPs de upload_files y edit_post con el plugin User Role Editor. También he probado a dar los permisos con el siguiente código e igual:

    add_filter( 'ajax_query_attachments_args', 'show_current_user_attachments', 10, 1 );
    function show_current_user_attachments( $query = array() ) {
        $user_id = get_current_user_id();
        if( $user_id ) {
            $query['author'] = $user_id;
        }
        return $query;
    }

    Es solo para que el usuario pueda subir imágenes, el resto del formulario con el mapeo a los custom fields del CPT va de lujo.

    Gracias por la ayuda!

    • Esta respuesta fue modificada hace 3 años, 11 meses por delerean.
    • Esta respuesta fue modificada hace 3 años, 11 meses por delerean.
    Iniciador del debate delerean

    (@delerean)

    Pues ale, ya me contesto yo solo 😀

    Acabo de encontrar este plugin https://wordpress.org/plugins/wp-multi-network que hace exactamente lo que necesito.

    Hay que ver lo que cuesta encontrar algo cuando no buscas con la palabra correcta xD

    Aquí lo dejo para el que le pueda ayudar, saludos!

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)