$shopid); $content = $this->api->call('/NewGetShopData', $data, 'get'); // Ensure response format is safe $content = is_array($content) ? $content : []; $dataArray = isset($content['data']) && is_array($content['data']) ? $content['data'] : []; // Safe variable assignments $primary_id = $dataArray['id'] ?? null; $current_plan = $dataArray['plan'] ?? ''; $member_plan = $dataArray['plan_display_name'] ?? ''; $access_by_admin = $dataArray['access_by_admin'] ?? 0; $is_installation_popup_shown = $dataArray['is_installation_popup_shown'] ?? 0; $is_plan_select_popup_shown = $dataArray['is_plan_select_popup_shown'] ?? 0; // Fallback to locally cached values when API is delayed on first page load. if (empty($primary_id)) { $primary_id = get_option('accessibility_primaryid'); } if (empty($current_plan)) { $current_plan = (string) get_option('accessibility_plan', ''); $dataArray['plan'] = $current_plan; $content['data']['plan'] = $current_plan; } // Save to DB if available if (!empty($primary_id)) { update_option('accessibility_primaryid', $primary_id); } if (!empty($current_plan)) { update_option('accessibility_plan', $current_plan); } ?> $shopid, 'enable_link' => $button_link_status, 'position' => $desktop_position, 'mobile_position' => $mobile_position, 'jsChecked' => $widget_enable, 'backgroundcolor' => $backgroundcolor, 'fontcolor' => $fontcolor, 'iconcolor' => $iconcolor, 'bottom_padding' => $bottom_padding, 'widget_size' => $widget_size, 'choose_design' => $choose_design, 'widget_inner_color' => $widget_inner_color, 'widget_outer_color' => $widget_outer_color, 'statement_edit' => $statement_edit, 'statement_link' => $statement_link, 'widget_icon' => $widget_icon ]; $returnsenddata = $this->api->call('/updateShopData', $send_data, 'post'); if (isset($returnsenddata['status']) && $returnsenddata['status'] == 200) { echo '
× Success!
'; echo ''; // Refresh API data $content = $this->api->call('/NewGetShopData', ['shopid' => $shopid], 'get'); // Clear transient cache to reflect changes immediately delete_transient('accessibility_widget_data_' . $shopid); } else { echo '
× Error: ' . esc_html($returnsenddata['messages'] ?? 'Unknown issue') . '
'; echo ''; } } } ?> You have admin access

"; } if (!empty($current_plan) && strpos(strtolower($member_plan), 'develop') !== false) { echo "

You have member access

"; } if (empty($current_plan)) { echo "

"; _e('Unlock full functionality by upgrading to a paid plan', 'accessibility-assistant'); echo "

"; } ?>

%s as link', 'accessibility-assistant'), '#add-aacc-link'); ?>

📝

note
This is the default and most widely used design of the accessibility widget – tried, tested, and reliable across all devices.
A modernized version of the default design - visually polished, stylistically refined.
Designed specifically for mobile - similar to the default but optimized for smaller screens and touch-friendly interaction.

0
25
50
75
100

note
0
25
50
75
100

> />
> />
> />

note
" alt="widget icon" class="cc-aa-user-admin-widget-icon-preview-image" />

> />
> />