Personnaliser nom des membres

Ce sujet a 20 réponses, 3 participants et a été mis à jour par Photo du profil de Julien Julien, il y a 4 mois.

15 sujets de 1 à 15 (sur un total de 21)
  • Auteur
    Messages
  • #9525
    Photo du profil de Julien
    Julien
    Participant

    Bonjour,

    Je créer un site marketplace, à savoir qu’il y aura des utilisateurs vendeurs, j’aimerais que sous leur nom de profil soit indiquer le mot « artiste » et j’ai aussi des acheteurs que j’aimerais appeler « amateur d’art », est-ce possible de faire cela, peux être un bout de code à partagé ?

    #9526
    Photo du profil de Dan
    Dan
    Admin bbPress
    #9528
    Photo du profil de Julien
    Julien
    Participant

    Je n’avais pas connaissance de ça, merci pour la partage, j’ai donc télécharger le fichier bp-custom.php, mais ça date de 2 ans quand même, pas sur que cela fonctionnera, je ne sais pas ou placer ce fichier dans mon theme enfant, pouvez vous me dire ou le mettre ?

    #9529
    Photo du profil de Dan
    Dan
    Admin bbPress

    bp-custom.php est à mettre dans le répertoire wp-content/plugins/

    bp-custom.php

    #9530
    Photo du profil de Julien
    Julien
    Participant

    Ok merci,

    Je trouve cela étrange de mettre un fichier PHP dans ce répertoire, normalement il y a toujours un dossier et à l’interieur les fichiers correspondants.

    Du coup, j’ai téléchargé le plugin ci dessous qui est plus ressent et plus poussé, mais chez moi il ne fonctionne pas avec mon theme, le type de membre ne s’affiche pas sur le site.

    https://fr.wordpress.org/plugins/bp-member-type-generator/

    edit: A priori cela est normal, ce plugin ne créer pas de type de membre directement sur les profils membres, mais il y a ça sinon:

    BuddyPress Xprofile Member Type Field

    Mais bon c’est payant

    #9531
    Photo du profil de Julien
    Julien
    Participant

    Ou mieux, étant donnée que je possède un theme chez buddyboss, autant prendre la bas:

    BuddyPress Member Types


    Si mon anglais est bon, ce plugin créer de façon automatique (ci bien configurer bien sur) des types de membres.

    #9532
    Photo du profil de Ahmed
    Ahmed
    Participant

    J’utilise le même theme que vous, et voici le code que j’utilise

    /*************filtrage des membres par type***************/
    // Exit if accessed directly
    if ( ! defined( 'ABSPATH' ) ) exit;
    /**
     * Register member types.
     *
     * From the wp-admin/extended profile
     * it will be possible to set the user's member type
     */
    function using_mt_register_member_types() {
    	bp_register_member_type( 'student', array(
    		'labels' => array(
    			'name'          => __( 'Microentreprises', 'using-mt' ),
    			'singular_name' => __( 'Microentreprise', 'using-mt' ),
    		),
    	) );
    	bp_register_member_type( 'teacher', array(
    		'labels' => array(
    			'name'          => __( 'Particuliers', 'using-mt' ),
    			'singular_name' => __( 'Particulier', 'using-mt' ),
    		),
    	) );
    	
    }
    add_action( 'bp_init', 'using_mt_register_member_types' );
    /**
     * Get the member type count
     *
     * @todo use a WP Taxonomy function ?
     */
    function using_mt_count_member_types( $member_type = '', $taxonomy = 'bp_member_type' ) {
    	global $wpdb;
    	$member_types = bp_get_member_types();
    	if ( empty( $member_type ) || empty( $member_types[ $member_type ] ) ) {
    		return false;
    	}
    	$count_types = wp_cache_get( 'using_mt_count_member_types', 'using_mt_bp_member_type' );
    	if ( ! $count_types ) {
    		if ( ! bp_is_root_blog() ) {
    			switch_to_blog( bp_get_root_blog_id() );
    		}
    		$sql = array(
    			'select' => "SELECT t.slug, tt.count FROM {$wpdb->term_taxonomy} tt LEFT JOIN {$wpdb->terms} t",
    			'on'     => 'ON tt.term_id = t.term_id',
    			'where'  => $wpdb->prepare( 'WHERE tt.taxonomy = %s', $taxonomy ),
    		);
    		$count_types = $wpdb->get_results( join( ' ', $sql ) );
    		wp_cache_set( 'using_mt_count_member_types', $count_types, 'using_mt_bp_member_type' );
    		restore_current_blog();
    	}
    	$type_count = wp_filter_object_list( $count_types, array( 'slug' => $member_type ), 'and', 'count' );
    	$type_count = array_values( $type_count );
    	if ( empty( $type_count ) ) {
    		return 0;
    	}
    	return (int) $type_count[0];
    }
    /**
     * Display tabs used to filter the members directory by types.
     */
    function using_mt_display_directory_tabs() {
    	$member_types = bp_get_member_types( array(), 'objects' );
    	// Loop in member types to build the tabs
    	foreach ( $member_types as $member_type ) : ?>
    	<li id="members-<?php echo esc_attr( $member_type->name ) ;?>">
    		"><?php printf( '%s <span>%d</span>', $member_type->labels['name'], using_mt_count_member_types( $member_type->name ) ); ?>
    	
    	<?php endforeach;
    }
    add_action( 'bp_members_directory_member_types', 'using_mt_display_directory_tabs' );
    /**
     * Alter the members query arguments to filter the members query by selected type.
     */
    function using_mt_set_has_members_type_arg( $args = array() ) {
    	// Get member types to check scope
    	$member_types = bp_get_member_types();
    	// Set the member type arg if scope match one of the registered member type
    	if ( ! empty( $args['scope'] ) && ! empty( $member_types[ $args['scope'] ] ) ) {
    		$args['member_type'] = $args['scope'];
    	}
    	return $args;
    }
    add_filter( 'bp_before_has_members_parse_args', 'using_mt_set_has_members_type_arg', 10, 1 );
    /**
     * Clean count cache when one of the member type count has been updated
     */
    function using_mt_clean_count_cache( $term = 0, $taxonomy = null ) {
    	if ( empty( $term ) || empty( $taxonomy->name ) || 'bp_member_type' != $taxonomy->name )  {
    		return;
    	}
    	wp_cache_delete( 'using_mt_count_member_types', 'using_mt_bp_member_type' );
    }
    add_action( 'edited_term_taxonomy', 'using_mt_clean_count_cache', 10, 2 );
    /**
     * Display the member type of the displayed user
     */
    function using_mt_member_header_display() {
    	$member_type = bp_get_member_type( bp_displayed_user_id() );
    	if ( empty( $member_type ) ) {
    		return;
    	}
    	$member_type_object = bp_get_member_type_object( $member_type );
    	?>
    	<p class="member_type"><?php echo esc_html( $member_type_object->labels['singular_name'] ); ?></p>
    	<?php
    }
    add_action( 'bp_before_member_header_meta', 'using_mt_member_header_display' );
    /*****************fin filtrage des membres***************/
    

    Et ça fonctionne sans problème, ça serai dommage de payer pour un truc qu’on peut faire soit même

    #9533
    Photo du profil de Julien
    Julien
    Participant

    Merci pour ta participation, oui mais je ne suis pas développeur donc j’aurais pas pu faire ce type de code.
    Tu ajoute ce bout de code dans le fichier functions.php je suppose ?
    Ton code permet t-il de voir le type de membre sur son profil ? Si tu as lien vers ton site je ne suis pas contre.

    J’ai installer ces 2 plugin tout à l’heure:

    BuddyPress Xprofile Member Type Field


    https://fr.wordpress.org/plugins/bp-member-type-generator/

    Mais cela n’ajoute pas le type de membre sur les profils, à moins que j’ai loupé une étape …

    #9534
    Photo du profil de Ahmed
    Ahmed
    Participant

    je ne suis pas développeur non plus, je suis comme toi 😉
    j’ai juste recuperé le code et modifié deux mot.

    bout de code à insérer dans bp-custom.php, il insère le member type et l’affiche dans le header du profile.

    tu as bien créé le champ xprofile type?

    #9535
    Photo du profil de Julien
    Julien
    Participant

    bp-custom.php doit être à la racine du dossier plugin ?
    Oui j’ai bien créer le champ xprofil, du coup j’ai plus besoin des 2 plugins que j’ai cité plus haut ? avec ton code, cela les remplace ?

    edit:
    Ton code ne va pas, j’ai une partie en noir, mais j’y connais rien en code, je penseq ue c’est une basile qui manque ou quelques chose dans le genre …
    voici une ptite vidéo pour montrer le problème: http://recordit.co/dCw4UXRA1e

    #9536
    Photo du profil de Ahmed
    Ahmed
    Participant

    j’ai fais un copie colle avec lon smartphone il doit y avoir une erreur de syntaxe.

    tiens le code source, ecris le code tel qu’il est pour tester,ensuite tu modifie a tes besoins.

    Tu gardes aussi le plugin xprofile member type t’en aura besoin pour ajouter les champs.

    #9537
    Photo du profil de Ahmed
    Ahmed
    Participant

    Tu modifies juste la premiere fonction et tu rajoutes autant de type que tu veux

    #9538
    Photo du profil de Julien
    Julien
    Participant

    Ok merci.

    Ne fonctionne pas, j’ai bien ajouter le nouveau champ mais cela ne s’affiche pas dans l’inscription.
    J’ai ajouter le fichier à la racine de –> /public_html/wp-content/plugins

    #9539
    Photo du profil de Ahmed
    Ahmed
    Participant

    Tu peux envoyer une copie de TOUT ton fichier bp-custom

    #9540
    Photo du profil de Julien
    Julien
    Participant

    J’ai copier/coller le code donc ça devrais être bon.

    <?php
    /**
     * Using BuddyPress Member types API
     *
     * see codex: https://codex.buddypress.org/developer/member-types/
     * 
     * Required config:
     * - WordPress 4.1
     * - BuddyPress 2.2
     * 
     * License: GNU/GPL 2
     * Author: imath
     */
    // Exit if accessed directly
    if ( ! defined( 'ABSPATH' ) ) exit;
    /**
     * Register member types.
     *
     * From the wp-admin/extended profile
     * it will be possible to set the user's member type
     */
    function using_mt_register_member_types() {
    	bp_register_member_type( 'student', array(
    		'labels' => array(
    			'name'          => __( 'Students', 'using-mt' ),
    			'singular_name' => __( 'Student', 'using-mt' ),
    		),
    	) );
    	bp_register_member_type( 'teacher', array(
    		'labels' => array(
    			'name'          => __( 'Teachers', 'using-mt' ),
    			'singular_name' => __( 'Teacher', 'using-mt' ),
    		),
    	) );
    }
    add_action( 'bp_init', 'using_mt_register_member_types' );
    /**
     * Get the member type count
     *
     * @todo use a WP Taxonomy function ?
     */
    function using_mt_count_member_types( $member_type = '', $taxonomy = 'bp_member_type' ) {
    	global $wpdb;
    	$member_types = bp_get_member_types();
    	if ( empty( $member_type ) || empty( $member_types[ $member_type ] ) ) {
    		return false;
    	}
    	$count_types = wp_cache_get( 'using_mt_count_member_types', 'using_mt_bp_member_type' );
    	if ( ! $count_types ) {
    		if ( ! bp_is_root_blog() ) {
    			switch_to_blog( bp_get_root_blog_id() );
    		}
    		$sql = array(
    			'select' => "SELECT t.slug, tt.count FROM {$wpdb->term_taxonomy} tt LEFT JOIN {$wpdb->terms} t",
    			'on'     => 'ON tt.term_id = t.term_id',
    			'where'  => $wpdb->prepare( 'WHERE tt.taxonomy = %s', $taxonomy ),
    		);
    		$count_types = $wpdb->get_results( join( ' ', $sql ) );
    		wp_cache_set( 'using_mt_count_member_types', $count_types, 'using_mt_bp_member_type' );
    		restore_current_blog();
    	}
    	$type_count = wp_filter_object_list( $count_types, array( 'slug' => $member_type ), 'and', 'count' );
    	$type_count = array_values( $type_count );
    	if ( empty( $type_count ) ) {
    		return 0;
    	}
    	return (int) $type_count[0];
    }
    /**
     * Display tabs used to filter the members directory by types.
     */
    function using_mt_display_directory_tabs() {
    	$member_types = bp_get_member_types( array(), 'objects' );
    	// Loop in member types to build the tabs
    	foreach ( $member_types as $member_type ) : ?>
    	<li id="members-<?php echo esc_attr( $member_type->name ) ;?>">
    		"><?php printf( '%s <span>%d</span>', $member_type->labels['name'], using_mt_count_member_types( $member_type->name ) ); ?>
    	
    	<?php endforeach;
    }
    add_action( 'bp_members_directory_member_types', 'using_mt_display_directory_tabs' );
    /**
     * Alter the members query arguments to filter the members query by selected type.
     */
    function using_mt_set_has_members_type_arg( $args = array() ) {
    	// Get member types to check scope
    	$member_types = bp_get_member_types();
    	// Set the member type arg if scope match one of the registered member type
    	if ( ! empty( $args['scope'] ) && ! empty( $member_types[ $args['scope'] ] ) ) {
    		$args['member_type'] = $args['scope'];
    	}
    	return $args;
    }
    add_filter( 'bp_before_has_members_parse_args', 'using_mt_set_has_members_type_arg', 10, 1 );
    /**
     * Clean count cache when one of the member type count has been updated
     */
    function using_mt_clean_count_cache( $term = 0, $taxonomy = null ) {
    	if ( empty( $term ) || empty( $taxonomy->name ) || 'bp_member_type' != $taxonomy->name )  {
    		return;
    	}
    	wp_cache_delete( 'using_mt_count_member_types', 'using_mt_bp_member_type' );
    }
    add_action( 'edited_term_taxonomy', 'using_mt_clean_count_cache', 10, 2 );
    /**
     * Display the member type of the displayed user
     */
    function using_mt_member_header_display() {
    	$member_type = bp_get_member_type( bp_displayed_user_id() );
    	if ( empty( $member_type ) ) {
    		return;
    	}
    	$member_type_object = bp_get_member_type_object( $member_type );
    	?>
    	<p class="member_type"><?php echo esc_html( $member_type_object->labels['singular_name'] ); ?></p>
    	<?php
    }
    add_action( 'bp_before_member_header_meta', 'using_mt_member_header_display' );
15 sujets de 1 à 15 (sur un total de 21)

Le sujet ‘Personnaliser nom des membres’ est fermé à de nouvelles réponses.

Aller à la barre d’outils