?>public function getProviderServices($provider_id) { global $wpdb; $provider = $wpdb->get_row($wpdb->prepare( "SELECT * FROM {$wpdb->prefix}smm_providers WHERE id = %d AND status = 'active'", $provider_id )); if (!$provider) { error_log('SMM Panel: Provider not found or inactive: ' . $provider_id); return false; } $provider_class = $this->getProviderClass($provider->name); if (!$provider_class) { error_log('SMM Panel: Provider class not found for: ' . $provider->name); return false; } try { $services = $provider_class->getServices($provider->api_url, $provider->api_key); if ($services) { error_log('SMM Panel: Successfully fetched ' . count($services) . ' services from provider'); return $services; } else { error_log('SMM Panel: No services returned from provider API'); return false; } } catch (Exception $e) { error_log('SMM Panel: Error fetching services: ' . $e->getMessage()); return false; } } private function getProviderClass($provider_name) { $provider_name = strtolower($provider_name); // Support multiple provider names if (strpos($provider_name, 'teateagram') !== false) { $provider_file = SMM_PANEL_PLUGIN_DIR . 'providers/teateagram/provider.php'; if (file_exists($provider_file)) { require_once $provider_file; if (class_exists('TeateagramProvider')) { return new TeateagramProvider(); } } } error_log('SMM Panel: Provider class not found for: ' . $provider_name); return false; } public function updateAllOrderStatuses() { global $wpdb; $pending_orders = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}smm_orders WHERE status IN ('pending', 'in_progress', 'partial') AND provider_order_id IS NOT NULL" ); foreach ($pending_orders as $order) { $status = $this->getOrderStatus($order->id); if ($status) { $wpdb->update( $wpdb->prefix . 'smm_orders', array( 'status' => strtolower(str_replace(' ', '_', $status['status'])), 'remains' => $status['remains'] ?? 0, 'start_count' => $status['start_count'] ?? 0 ), array('id' => $order->id) ); } } } $data = array(); // Collect all possible fields $fields = array( 'custom_name', 'custom_description', 'category_id', 'price_type', 'price_value', 'status', 'is_featured', 'sort_order' ); foreach ($fields as $field) { if (isset($_POST[$field])) { $data[$field] = $_POST[$field]; } } $result = $this->updateService($service_id, $data); if ($result !== false) { wp_send_json_success('Service updated successfully'); } else { wp_send_json_error('Failed to update service'); } } /** * AJAX: Bulk update services */ public function bulkUpdateServicesAjax() { check_ajax_referer('smm_nonce', 'nonce'); if (!current_user_can('manage_options')) { wp_send_json_error('Permission denied'); } $service_ids = array_map('intval', $_POST['service_ids']); $updates = $_POST['updates']; $result = $this->bulkUpdateServices($service_ids, $updates); if ($result) { wp_send_json_success('Services updated successfully'); } else { wp_send_json_error('Failed to update services'); } } /** * AJAX: Toggle service featured */ public function toggleServiceFeatured() { check_ajax_referer('smm_nonce', 'nonce'); if (!current_user_can('manage_options')) { wp_send_json_error('Permission denied'); } $service_id = intval($_POST['service_id']); Shop – Ali One

Shop

Scroll to Top