J'écris un plugin qui ajoute un groupe de profil supplémentaire et quelques champs lorsqu'il est activé. J'utilise des fonctions $wpdb
de base pour insérer de nouvelles lignes dans bp_xprofile_groups et bp_xprofile_fields
Donc tout le processus a l'air très boiteux:
Certains champs sont des options, donc au total, je fais 5 requêtes SQL pour créer un champ de groupe et 4 champs d’option avec 2 cases à cocher dans ce groupe de champs.
Je voudrais le faire en utilisant des crochets BuddyPress. J'ai trouvé ce dont j'avais besoin:
xprofile_insert_field_group($args)
et xprofile_insert_field($args)
donc ça ressemble à ça:
$args = array(
'name' => 'Test',
'description' => '',
'can_delete' => '0'
);
xprofile_insert_field_group( $args );
et puis je suis supposé utiliser xprofile_insert_field () mais je ne connais pas l'ID d'un groupe que je viens de créer à utiliser dans field_group_id:
$args = array(
'field_group_id' => ?????,
'parent_id' => '',
'type' => 'textbox',
...
...
);
xprofile_insert_field( $args );
Est-ce que quelqu'un a des suggestions?
Il semble que peu de gens s’intéressent à BP. Voici donc la solution que j’ai trouvée.
Pour ajouter un nouveau groupe de champs à l'aide de points d'ancrage BP:
// Create new Field Group
$group_args = array(
'name' => 'Social Networks'
);
$group_id = xprofile_insert_field_group( $group_args ); // group's ID
Pour ajouter des champs à ce nouveau groupe:
// Insert New Field
xprofile_insert_field(
array (
field_group_id => $group_id,
name => 'Twitter',
can_delete => false, // Doesn't work *
field_order => 1,
is_required => false,
type => 'textbox'
)
);
Je pense qu'il y a actuellement un bug dans BP. can_delete = 0
signifie que vous ne pouvez pas supprimer quelque chose (c.-à-d. un champ ou un groupe), mais peu importe ce que vous transmettez à xprofile_insert_field()
, ce sera can_delete = 1
.