• Resolved icaro56

    (@icaro56)


    Oi. Estou com um problema com os tokens da juno. Utilizo Dokan + Juno Split

    O token da juno de certos usuários está ficando nulo. O curioso é que entrando no painel do vendedor nas configura??es de pagamento, o token privado está lá.

    Porém no admin do wordpress na janela de usuários vejo q o token está nulo. Acabei de fazer uma venda e no log mostra q o token do vendedor estava nulo.

    Penso que alguma atualiza??o do usuário está fazendo o token ficar nulo.

    Outro erro q percebi é que ao setar o token pelo admin, este token n?o vai aparecer para o vendedor no painel de vendedor.

    Qualquer coisa é só perguntar.

Viewing 8 replies - 1 through 8 (of 8 total)
  • Thread Starter icaro56

    (@icaro56)

    Descobri o erro mas n?o sei resolver ainda.

    Quando o vendedor atualiza alguma informa??o nas configura??es da loja, o token privado da Juno ficará nulo quando olhamos em Admin->Usuários->Usuário em quest?o

    Thread Starter icaro56

    (@icaro56)

    No arquivo class-juno-dokan-settings.php na linha 39 há o código que é chamado toda vez que alguma coisa dentro de store é salva:

    public function save_withdraw_options( $store_id, $dokan_settings ) {
        if ( ! $store_id ) {
          return;
        }
    
        if ( isset( $_POST['settings']['juno']['token'] ) ) {
          $dokan_settings['payment']['juno'] = $_POST['settings']['juno'];
          update_user_meta( $store_id, 'dokan_profile_settings', $dokan_settings );
          update_user_meta( $store_id, '_juno_token', $_POST['settings']['juno']['token'] );
        } else {
          delete_user_meta( $store_id, '_juno_token' );
        }
    }

    Aí no if que testa se há o juno da token caso ele falhe, está entrando no else que vai acabar deletando o token que foi configurado anteriormente.

    Alterei o código para o código seguinte e parece estar funcionando agora:

    public function save_withdraw_options( $store_id, $dokan_settings ) {
        if ( ! $store_id ) {
          return;
        }
    
        $existing_dokan_settings = get_user_meta( $store_id, 'dokan_profile_settings', true );
        $prev_dokan_settings     = ! empty( $existing_dokan_settings ) ? $existing_dokan_settings : array();
        $post_data               = /*wp_unslash*/( $_POST );
    
        if ( isset( $post_data['settings']['juno']['token'] ) ) {
          $dokan_settings['payment']['juno'] = $post_data['settings']['juno'];
          //update_user_meta( $store_id, 'dokan_profile_settings', $dokan_settings );
          update_user_meta( $store_id, '_juno_token', $post_data['settings']['juno']['token'] );
        }
    
        $dokan_settings = array_merge( $prev_dokan_settings, $dokan_settings );
    
        update_user_meta( $store_id, 'dokan_profile_settings', $dokan_settings );
      }
    • This reply was modified 3 years, 11 months ago by icaro56.
    Thread Starter icaro56

    (@icaro56)

    Código acima funcionou mesmo.

    Olá icaro interessante isso.
    Mas no meu caso eu uso o WCFM, o curioso que apesar de ser ferramentas diferentes está gerando o mesmo erro, vou analisar meu arquivo e ver se tenho esse mesmo problema de se atualizar tudo quando atualiza alguma informa??o da loja.

    Obrigado pela contribui??o.

    Thread Starter icaro56

    (@icaro56)

    Deve ser uma solu??o parecida.

    Porém, o desenvolvedor do plugin falou que vai lan?ar uma corre??o em breve.

    N?o manjo nada disso vou esperar, o que tenho feito é todo dia monitorar os tokens, para ver se est?o sumindo. Vlww

    Plugin Author Fernando Acosta

    (@amgnando)

    Olá,

    Problema resolvido!

    Olá Fernando esse update resolve o mesmo problema no WCFM? Obrigado

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Token ficando nulo’ is closed to new replies.