';
add_options_page(
__( 'Advanced Scrollbar Settings', 'advanced-scrollbar' ), // Page title
__( 'Advanced Scrollbar Settings', 'advanced-scrollbar' ), // Menu title
'manage_options', // Capability
'advanced-scrollbar', // Menu slug
[$this, 'dashboardPage'] // Callback
);
}
function dashboardPage(){ ?>
CASB_VERSION,
"dirUrl" => CASB_DIR_URL,
"nonce" => wp_create_nonce("casb_scrollbar_nc"),
"ajaxUrl" => admin_url('admin-ajax.php'),
"deleteDataOnUninstall" => (bool) get_option( 'casb_delete_data_on_uninstall', false ),
"uninstallNonce" => wp_create_nonce( 'casb_uninstall_nc' ),
]) ); ?>>
' . __( 'Settings', 'advanced-scrollbar' ) . '';
array_unshift( $links, $settings_link );
return $links;
}
/**
* AJAX handler to save the "Delete Data on Uninstall" preference.
*/
function casb_save_uninstall_option() {
if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'casb_uninstall_nc' ) ) {
wp_send_json_error( 'Invalid request' );
}
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( 'Unauthorized' );
}
$enabled = isset( $_POST['enabled'] ) && sanitize_text_field( wp_unslash( $_POST['enabled'] ) ) === 'true';
update_option( 'casb_delete_data_on_uninstall', $enabled );
wp_send_json_success( [
'enabled' => $enabled,
'message' => $enabled
? __( 'Data will be deleted when the plugin is uninstalled.', 'advanced-scrollbar' )
: __( 'Data will be preserved when the plugin is uninstalled.', 'advanced-scrollbar' ),
] );
}
}
new CASBAdmin;
}