' . $generated_api_key . '' ); $message .= '
' . __( 'Be sure to save this in a safe location. You will not be able to retrieve it later on.', 'email-subscribers' ); $response['message'] = $message; } } wp_send_json( $response ); } /** * Generate a new REST API key from the user email */ public static function generate_rest_api_key( $user_id = 0 ) { if ( empty( $user_id ) ) { return false; } $user = get_userdata( $user_id ); if ( ! $user ) { return false; } $user_email = $user->user_email; $auth_key = defined( 'AUTH_KEY' ) ? AUTH_KEY : ''; $generated_api_key = hash( 'md5', $user_email . $auth_key . gmdate( 'U' ) ); return $generated_api_key; } public static function handle_delete_rest_api_key_request() { check_ajax_referer( 'ig-es-admin-ajax-nonce', 'security' ); $response = array(); $user_id = ig_es_get_request_data( 'user_id', 0 ); if ( empty( $user_id ) ) { $response['status'] = 'error'; $response['message'] = __( 'User missing.', 'email-subscribers' ); } $user = get_user_by( 'id', absint( $user_id ) ); if ( ! $user ) { $response['status'] = 'error'; $response['message'] = __( 'User missing.', 'email-subscribers' ); } else { $api_index = ig_es_get_request_data( 'api_index', 0 ); $api_key_deleted = self::delete_rest_api_key( $user_id, $api_index ); if ( $api_key_deleted ) { $response['status'] = 'success'; } } wp_send_json( $response ); } public static function delete_rest_api_key( $user_id, $index = 0 ) { $rest_api_keys = get_user_meta( $user_id, 'ig_es_rest_api_keys', true ); unset( $rest_api_keys[ $index ] ); if ( empty( $rest_api_keys ) ) { $success = delete_user_meta( $user_id, 'ig_es_rest_api_keys' ); } else { $success = update_user_meta( $user_id, 'ig_es_rest_api_keys', $rest_api_keys ); } if ( true === $success ) { return true; } return false; } } ES_Rest_API_Admin::init();