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.