BuddyPress: gancho para adicionar novos campos e grupos de perfil

4

Estou escrevendo um plug-in que adiciona um grupo de perfil adicional e alguns campos quando ativado. Estou usando as funções básicas $wpdb para inserir novas linhas em bp_xprofile_groups e bp_xprofile_fields

Assim, todo o processo parece muito ruim:

  1. Eu adiciono nova linha ao bp_xprofile_groups ;
  2. Eu recebo o ID dessa linha ( WHERE nome = 'Novo nome do grupo' );
  3. Eu uso esse ID para inserir novas linhas em bp_xprofile_fields

Alguns campos são opções. No total, faço 5 consultas SQL apenas para criar 1 campo de grupo e 4 campos de opção com 2 caixas de seleção nesse grupo de campos.

Eu gostaria de usar os ganchos BuddyPress. Eu encontrei o que eu preciso:

xprofile_insert_field_group($args) e xprofile_insert_field($args)

então parece com isso:

$args = array(
    'name'           => 'Test',
    'description'    => '',
    'can_delete'     => '0'
    );
xprofile_insert_field_group( $args );

e, em seguida, devo usar xprofile_insert_field (), mas não sei o ID de um grupo que acabei de criar para usar em field_group_id:

$args = array(
    'field_group_id'           => ?????,
    'parent_id'    => '',
    'type'     => 'textbox',
    ...
    ...
    );
xprofile_insert_field( $args );

Alguém tem alguma sugestão?

    
por mikek 17.08.2012 / 06:00

1 resposta

2

Bem, parece que muitas pessoas não estão cavando a BP, então aqui está a solução que encontrei.

Para adicionar um novo grupo de campos usando ganchos BP:

// Create new Field Group       
$group_args = array(
     'name' => 'Social Networks'
     );
$group_id = xprofile_insert_field_group( $group_args ); // group's ID

Para adicionar alguns campos a este novo grupo:

// 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'
    )
);

Acho que atualmente há um bug no BP. can_delete = 0 significa que você não pode excluir algo (ou seja, campo ou grupo), mas não importa o que você passar para xprofile_insert_field() , será can_delete = 1 .

    
por mikek 18.08.2012 / 01:22

Tags