%2$s',
menu_page_url( 'northe-instagram-widget', false ),
esc_html__( 'Settings', 'acosmin-north-extensions' )
);
array_unshift( $links, $settings_link );
return $links;
}
public function add_admin_menu() {
add_options_page(
'Instagram Settings',
'Instagram Settings',
'manage_options',
'northe-instagram-settings',
array( $this, 'settings_page' )
);
}
public function settings_init() {
register_setting(
'northe-instagram-settings-group',
'northe-instagram-settings',
array( $this, 'sanitize' )
);
add_settings_section(
'northe-instagram-settings-general',
null,
'__return_false',
'northe-instagram-settings-group'
);
add_settings_field(
'northe-instagram-widget-access-token',
__( 'Access Token', 'acosmin-north-extensions' ),
array( $this, 'settings_field_access_token' ),
'northe-instagram-settings-group',
'northe-instagram-settings-general'
);
}
public function settings_field_access_token() {
$settings = get_option( 'northe-instagram-settings' );
?>
__( "You are already connected to Instagram.\r\n\r\nDo you want to connect again?", 'acosmin-north-extensions' ),
) );
}
public function sanitize( $input ) {
$result = array();
$result[ 'access-token' ] = sanitize_text_field( $input[ 'access-token' ] );
$validation_result = Northe_API_Instagram::is_access_token_valid( $result[ 'access-token' ] );
if ( $validation_result !== true ) {
$access_token_error_message = __( 'Provided access token is has been rejected by Instagram Api. Please check your input data.', 'acosmin-north-extensions' );
if ( is_wp_error( $validation_result ) ) {
$access_token_error_message = $validation_result->get_error_message();
}
if ( $validation_result !== true ) {
add_settings_error(
'northe-instagram-widget-access-token',
esc_attr( 'northe-instagram-widget-access-token-invalid' ),
$access_token_error_message,
'error'
);
}
$result['access-token'] = '';
}
Northe_API_Instagram::reset_cache();
return $result;
}
}
new Northe_Instagram_Settings();