Uploader image grâce à une metabox (Créer un compte)

  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #507387
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 4.1.1
    – Version de PHP/MySQL :
    – Thème utilisé : le mien
    – Extensions en place :
    – Nom de l’hebergeur : STRATO
    – Adresse du site :

    Problème(s) rencontré(s) :
    Bonjour,

    Je voudrais uploader une image grâce à une metabox.
    La metabox s’affiche dnas ma page wordpress, mais il y a un problème de sauvegarde de données.

    Mon code dans functions.php:

    if (is_admin()) {
    	wp_enqueue_script(‘customadminjsentmembres’, get_template_directory_uri() . ‘/js/admin-entmembres.js’);
    	}
    
    add_meta_box(‘id_entmembres’, ‘Image entreprises membres’, ‘meta_function_entmembres’, ‘page’, ‘normal’, ‘core’);
    
    function meta_function_entmembres( $post ) {
    wp_enqueue_media();
    	$logo_entmembres = get_post_meta( $post->ID, ‘logo_ent’, true );
        ?> 
        </br></br>
        <label for="logo_entmembres">Image avec logos entreprises membres: </label>
        <input id="logo_entmembres" style="width: 450px;" type="text" name="logo_entmembres" value="<?php echo $logo_entmembres;?>” />
        <a href="#" class="button customaddmediaentmembres"> Télécharger l’image</a></br>
        <i><?php echo 'Formats jpg, png, gif avec un nom de fichier sans accents';  ?></i>
    	</br></br>
        <?php
    
    
    add_action('save_post','save_metaboxes');
    function save_metaboxes($post_ID){
    	if(isset($_POST['logo_entmembres'])){
    			// Sanitize user input.
    			$meta_data_entmembres = sanitize_text_field($_POST['logo_entmembres']);
    			update_post_meta($post->ID, ‘logo_ent’, $meta_data_entmembres );
       }
    }
    ?>
    }

    Quand j’uploade l’image, le lien apparaît mais quand je met à jour la page wp, il disparaît.
    J’ai regardé dans la base de donnée, et rien ne se sauve dans logo_ent.

    Est ce que vous avez une remarque à faire sur mon code?
    je n’arrive pas à savoir où est le pb de sauvegarde….

    merci beaucoup pour votre aide !

    Timama

    #823715
    didier07
    Participant
    Maître WordPress
    1965 contributions

    Regarde bien ce que tu dois donner à wp_enqueue_media(); et ce qu’il va te retourner
    Il y a surement des paramètres important dedans

    Didier

    #823716
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    Merci Didier.

    alors, j’avoue n’avoir pas trouvé beaucoup d’info sur comment utiliser wp_enqueue_media() avec des arguments.
    Mais, j’utilise d’autres wp_enqueue_media() et je ne mets pas de paramètres.

    J’ai essayé aussi de placer le wp_enqueue_script autrement ….
    Je cherche …

    :search:

    #823717
    didier07
    Participant
    Maître WordPress
    1965 contributions
    #823718
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    Merci Didier 😉

    Ce n’est pas un problème de multiple upload (quand j’enlève le reste, ça fonctionne toujours pas ).
    Ce ne se sauve pas. J’uploade, le lien s’affiche et quand je mets à jour, ça disparait….

    humm je comprends toujours pas… je continue…

    :search:

    #823719
    didier07
    Participant
    Maître WordPress
    1965 contributions

    //When a file is selected, grab the URL and set it as the text field’s value
    custom_uploader.on(‘select’, function() {
    attachment = custom_uploader.state().get(‘selection’).first().toJSON();
    jQuery(‘#upload_image’).val(attachment.url);
    });

    A la fin du 2ème lien. Il faut que tu récuère l’url de ton image pour la sauvegarder.
    jQuery(“#logo_entmembre”).val(attachment.url) devrait faire ton affaire

    #823720
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    je le fais déjà, enfin, pas tout à fait pareil …. dans mon js admin-entmembres.js

    (function($){
    $(document).ready(function(){
    	$(‘.customaddmediaentmembres’).click(function(e) {
    		var $el = $(this).parent();
    		e.preventDefault();
    		var uploader = wp.media ({
    			title : ‘Charger l’image’,
    			button : {
    				text : ‘bibliothèque des medias’
    				}
    		})
    		.on(‘select’,function(){
    			var selection = uploader.state().get(‘selection’);
    			var attachment = selection.first().toJSON();
    			$(‘input#logo_entmembres’,$el).val(attachment.url);
    			$(‘img’,$el).attr(‘src’, attachment.url);
    		})
    		.open();
    	})
    })	
    })(jQuery);

    c’est peut être là que ça pose problème …. hummm je regarde

    merci Didier !

    :search:

    #823721
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    okay, j’ai trouvé. Dans le code suivant, il y avait $post-> que j’ai changé par $post_ID et ça fonctionne !

    if(isset($_POST[‘logoentmembres’])){
    			$meta_data_entmembres = $_POST[‘logoentmembres’];
    			update_post_meta($post_ID, ‘logoent’, $meta_data_entmembres );
       }

8 sujets de 1 à 8 (sur un total de 8)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.