// ============================================ // DIRECT PHP TEST - NO AJAX // ============================================ add_action('init', 'nfs_direct_test_runner'); function nfs_direct_test_runner() { if (!current_user_can('manage_options')) { return; } if (!isset($_GET['nfs_direct_test']) || $_GET['nfs_direct_test'] !== '1') { return; } // Prevent WordPress from loading further nfs_run_direct_tests(); exit; } function nfs_run_direct_tests() { header('Content-Type: text/plain; charset=utf-8'); echo "========================================\n"; echo " NAJIBUL FOLLOW SYSTEM - DIRECT TEST\n"; echo "========================================\n"; echo " Time: " . date('Y-m-d H:i:s') . "\n"; echo " WordPress: " . get_bloginfo('version') . "\n"; echo " PHP: " . PHP_VERSION . "\n"; echo " Plugin Version: " . (defined('NAJIBUL_FOLLOW_VERSION') ? NAJIBUL_FOLLOW_VERSION : 'Not detected') . "\n"; echo "========================================\n\n"; // ============================================ // TEST 1: Check if plugin is loaded // ============================================ echo "TEST 1: Plugin Loading\n"; echo "----------------------------------------\n"; echo "NAJIBUL_FOLLOW_VERSION: " . (defined('NAJIBUL_FOLLOW_VERSION') ? NAJIBUL_FOLLOW_VERSION : '❌ NOT DEFINED') . "\n"; echo "NAJIBUL_FOLLOW_PATH: " . (defined('NAJIBUL_FOLLOW_PATH') ? NAJIBUL_FOLLOW_PATH : '❌ NOT DEFINED') . "\n"; echo "NAJIBUL_FOLLOW_MODULE_PATH: " . (defined('NAJIBUL_FOLLOW_MODULE_PATH') ? NAJIBUL_FOLLOW_MODULE_PATH : '❌ NOT DEFINED') . "\n"; echo "\n"; // ============================================ // TEST 2: Check Follow_Core class // ============================================ echo "TEST 2: Follow_Core Class\n"; echo "----------------------------------------\n"; $class_exists = class_exists('NajibulFollow\\Follow_Core'); echo "class_exists('NajibulFollow\\\\Follow_Core'): " . ($class_exists ? '✅ YES' : '❌ NO') . "\n"; if (!$class_exists) { // Try to find the file $possible_paths = [ WP_PLUGIN_DIR . '/najibul-follow-system/author-follow-system/class-follow-core.php', WP_PLUGIN_DIR . '/najibul-follow-system/class-follow-core.php', WP_PLUGIN_DIR . '/najibul-follow/author-follow-system/class-follow-core.php', WP_CONTENT_DIR . '/plugins/najibul-follow-system/author-follow-system/class-follow-core.php', ]; echo "Searching for class file...\n"; foreach ($possible_paths as $path) { echo " Checking: " . $path . " - " . (file_exists($path) ? '✅ EXISTS' : '❌ NOT FOUND') . "\n"; if (file_exists($path)) { echo " ✅ FILE FOUND: " . $path . "\n"; require_once $path; $class_exists = class_exists('NajibulFollow\\Follow_Core'); echo " After require: " . ($class_exists ? '✅ CLASS LOADED' : '❌ CLASS NOT LOADED') . "\n"; break; } } } echo "\n"; // ============================================ // TEST 3: Database Connection // ============================================ echo "TEST 3: Database Connection\n"; echo "----------------------------------------\n"; global $wpdb; try { $connected = !$wpdb->db_connect_error(); echo "Database Connected: " . ($connected ? '✅ YES' : '❌ NO') . "\n"; echo "Database Version: " . $wpdb->db_version() . "\n"; echo "Table Prefix: " . $wpdb->prefix . "\n"; } catch (Exception $e) { echo "❌ Database Error: " . $e->getMessage() . "\n"; } echo "\n"; // ============================================ // TEST 4: Check Tables // ============================================ echo "TEST 4: Database Tables\n"; echo "----------------------------------------\n"; $tables = [ 'author_followers' => $wpdb->prefix . 'author_followers', 'uafs_notification_queue' => $wpdb->prefix . 'uafs_notification_queue', 'uafs_notifications' => $wpdb->prefix . 'uafs_notifications', 'uafs_push_tokens' => $wpdb->prefix . 'uafs_push_tokens', ]; foreach ($tables as $name => $table) { $exists = $wpdb->get_var("SHOW TABLES LIKE '$table'") === $table; $rows = $exists ? (int) $wpdb->get_var("SELECT COUNT(*) FROM $table") : 0; echo $name . ": " . ($exists ? '✅ EXISTS' : '❌ MISSING') . " (Rows: " . $rows . ")\n"; } echo "\n"; // ============================================ // TEST 5: Follow Function (if class exists) // ============================================ echo "TEST 5: Follow/Unfollow Function\n"; echo "----------------------------------------\n"; if ($class_exists) { try { $core = new NajibulFollow\Follow_Core(); echo "✅ Follow_Core instantiated\n"; // Get test users $users = get_users(['number' => 2]); if (count($users) >= 2) { $author_id = $users[0]->ID; $follower_id = $users[1]->ID; $language = 'en'; echo "Author: " . $users[0]->display_name . " (ID: " . $author_id . ")\n"; echo "Follower: " . $users[1]->display_name . " (ID: " . $follower_id . ")\n"; // Check current status $status = $core->check_follow_status($author_id, $follower_id, $language); echo "Current Status: " . ($status ? 'Following' : 'Not following') . "\n"; // Test Follow echo "\n--- Testing Follow ---\n"; $follow_result = $core->follow_author($author_id, $follower_id, $language); echo "Follow Result: " . ($follow_result ? '✅ SUCCESS' : '❌ FAILED') . "\n"; // Verify in database $verify = $wpdb->get_var($wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}author_followers WHERE author_id = %d AND follower_id = %d AND language = %s AND status = 1", $author_id, $follower_id, $language )); echo "Database Verify: " . ($verify > 0 ? '✅ Record found (' . $verify . ')' : '❌ No record found') . "\n"; // Test Unfollow echo "\n--- Testing Unfollow ---\n"; $unfollow_result = $core->unfollow_author($author_id, $follower_id, $language); echo "Unfollow Result: " . ($unfollow_result ? '✅ SUCCESS' : '❌ FAILED') . "\n"; // Verify in database $verify_unfollow = $wpdb->get_var($wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}author_followers WHERE author_id = %d AND follower_id = %d AND language = %s AND status = 0", $author_id, $follower_id, $language )); echo "Database Verify: " . ($verify_unfollow > 0 ? '✅ Record found (' . $verify_unfollow . ')' : '⚠️ No record found (may be deleted)') . "\n"; // Clear cache $core->clear_cache($author_id, $follower_id, $language); echo "Cache Cleared: ✅\n"; } else { echo "⚠️ Need at least 2 users for follow test\n"; echo "Current users: " . count($users) . "\n"; } } catch (Exception $e) { echo "❌ Error: " . $e->getMessage() . "\n"; echo "Trace: " . $e->getTraceAsString() . "\n"; } } else { echo "❌ Cannot test follow - Follow_Core not available\n"; } echo "\n"; // ============================================ // TEST 6: Guest Follow (if class exists) // ============================================ echo "TEST 6: Guest Follow/Unfollow\n"; echo "----------------------------------------\n"; if ($class_exists) { try { $core = new NajibulFollow\Follow_Core(); $fingerprint = 'test_guest_' . time() . '_' . wp_rand(10000, 99999); $users = get_users(['number' => 1]); $author_id = $users[0]->ID; $language = 'en'; echo "Guest Fingerprint: " . $fingerprint . "\n"; echo "Author: " . $users[0]->display_name . " (ID: " . $author_id . ")\n"; // Test Guest Follow echo "\n--- Testing Guest Follow ---\n"; $follow_result = $core->follow_author($author_id, 0, $language, $fingerprint); echo "Guest Follow Result: " . ($follow_result ? '✅ SUCCESS' : '❌ FAILED') . "\n"; // Verify in database $verify = $wpdb->get_var($wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}author_followers WHERE fallback_fingerprint = %s AND author_id = %d AND status = 1", $fingerprint, $author_id )); echo "Database Verify: " . ($verify > 0 ? '✅ Record found (' . $verify . ')' : '❌ No record found') . "\n"; // Test Guest Unfollow echo "\n--- Testing Guest Unfollow ---\n"; $unfollow_result = $core->unfollow_author($author_id, 0, $language, $fingerprint); echo "Guest Unfollow Result: " . ($unfollow_result ? '✅ SUCCESS' : '❌ FAILED') . "\n"; // Verify in database $verify_unfollow = $wpdb->get_var($wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}author_followers WHERE fallback_fingerprint = %s AND author_id = %d AND status = 0", $fingerprint, $author_id )); echo "Database Verify: " . ($verify_unfollow > 0 ? '✅ Record found (' . $verify_unfollow . ')' : '⚠️ No record found') . "\n"; // Clear cache $core->clear_cache($author_id, 0, $language); echo "Cache Cleared: ✅\n"; } catch (Exception $e) { echo "❌ Error: " . $e->getMessage() . "\n"; } } else { echo "❌ Cannot test guest follow - Follow_Core not available\n"; } echo "\n"; // ============================================ // TEST 7: File Permissions // ============================================ echo "TEST 7: File Permissions\n"; echo "----------------------------------------\n"; $plugin_dir = WP_PLUGIN_DIR . '/najibul-follow-system/'; echo "Plugin Directory: " . $plugin_dir . "\n"; echo "Directory Exists: " . (is_dir($plugin_dir) ? '✅ YES' : '❌ NO') . "\n"; if (is_dir($plugin_dir)) { $files = [ 'najibul-follow-system.php' => $plugin_dir . 'najibul-follow-system.php', 'author-follow-system/class-follow-core.php' => $plugin_dir . 'author-follow-system/class-follow-core.php', 'author-follow-system/class-ajax-rest-api.php' => $plugin_dir . 'author-follow-system/class-ajax-rest-api.php', ]; foreach ($files as $name => $path) { $exists = file_exists($path); $readable = $exists ? is_readable($path) : false; echo $name . ": " . ($exists ? '✅ EXISTS' : '❌ MISSING') . ($exists ? ' (Readable: ' . ($readable ? '✅' : '❌') . ')' : '') . "\n"; } } echo "\n"; // ============================================ // SUMMARY // ============================================ echo "========================================\n"; echo " SUMMARY\n"; echo "========================================\n"; $issues = []; if (!defined('NAJIBUL_FOLLOW_VERSION')) { $issues[] = "❌ Plugin not loaded (NAJIBUL_FOLLOW_VERSION not defined)"; } if (!$class_exists) { $issues[] = "❌ Follow_Core class not found"; } if ($class_exists && isset($follow_result) && !$follow_result) { $issues[] = "❌ Follow function failed"; } if (empty($issues)) { echo "✅ ALL TESTS PASSED!\n"; echo "System is working correctly.\n"; } else { echo "❌ ISSUES FOUND:\n"; foreach ($issues as $issue) { echo " - " . $issue . "\n"; } } echo "\n========================================\n"; echo " END OF REPORT\n"; echo "========================================\n"; } नाजीबुल हिंदी - ज्ञानवर्धक हिंदी निबंधों का संग्रह

Select Category

  • जीवनी Category
  • संस्कृति Category
  • डिजिटल मार्केटिंग Category
  • अर्थव्यवस्था Category
  • शिक्षा एवं सीखना Category
  • शिक्षा और करियर Category
  • स्पष्टीकरण Category
  • स्वास्थ्य Category
  • इतिहास Category
  • कानून Category
  • जीवन और प्रेरणा Category
  • नामों के अर्थ Category
  • अन्य Category
  • उद्धरण Category
  • धर्म और दर्शन Category
  • समीक्षा Category
  • विज्ञान Category
  • खेल Category
  • प्रौद्योगिकी Category
  • यात्रा Category
अर्पण: एक पवित्र समर्पण – नाम का अर्थ, महत्व और आध्यात्मिक प्रभाव

अर्पण: एक पवित्र समर्पण – नाम का अर्थ, महत्व और आध्यात्मिक प्रभाव

हर नाम के पीछे एक गहरी कहानी छिपी होती है, और जब बात हिंदू लड़कों के नामों की हो, तो उनका अर्थ केवल पहचान …

Read more

रमज़ान में सहरी और इफ्तार को नियमित रूप से करना क्यों ज़रूरी है

रमज़ान में सहरी और इफ्तार को नियमित रूप से करना क्यों ज़रूरी है

रमज़ान सहरी इफ्तार महत्व को समझना हर मुसलमान के लिए बेहद ज़रूरी है। कई लोग सोचते हैं कि सहरी और इफ्तार केवल समय पर …

Read more

नमाज़ इंसान को सुकून क्यों देती है? — क़ुरआन, हदीस और आधुनिक विज्ञान की व्याख्या

नमाज़ इंसान को सुकून क्यों देती है? — क़ुरआन, हदीस और आधुनिक विज्ञान की व्याख्या

क्या आप जानते हैं कि नमाज़ सिर्फ एक इबादत नहीं, बल्कि इंसान के मन, शरीर और दिमाग़ को गहराई से सुकून देने वाली पूर्ण …

Read more

जेम्स नाम का अर्थ: एक ऐतिहासिक और सांस्कृतिक दृष्टिकोण

जेम्स नाम का अर्थ: एक ऐतिहासिक और सांस्कृतिक दृष्टिकोण

जेम्स नाम एक ऐसा नाम है जिसे सुनते ही एक ताकतवर, ऐतिहासिक और सांस्कृतिक महत्व की भावना उत्पन्न होती है। यह नाम न केवल …

Read more

रूथ नाम का अर्थ: ईसाई लड़कियों के लिए एक अनोखी पहचान

रूथ नाम का अर्थ: ईसाई लड़कियों के लिए एक अनोखी पहचान

एक नाम केवल पहचान का माध्यम नहीं होता, बल्कि यह व्यक्तित्व का प्रतिबिंब भी होता है। “रूथ” नाम भी ऐसा ही एक अनोखा नाम …

Read more

अन्ना नाम का अर्थ और महत्व

अन्ना नाम का अर्थ और महत्व

नाम केवल एक पहचान नहीं होता, बल्कि यह व्यक्ति के व्यक्तित्व, चरित्र और सांस्कृतिक पृष्ठभूमि को भी दर्शाता है। अन्ना नाम एक सुंदर, अर्थपूर्ण …

Read more

राजीव नाम का अर्थ क्या है? – एक संपूर्ण और आधुनिक गाइड

राजीव नाम का अर्थ क्या है? – एक संपूर्ण और आधुनिक गाइड

मानव जीवन की पहली और सबसे महत्वपूर्ण पहचान उसका नाम होती है। एक सुंदर और अर्थपूर्ण नाम मनुष्य के व्यक्तित्व और मानसिकता के निर्माण …

Read more

सारा नाम का मतलब क्या है | सारा नाम का विस्तृत विवरण

सारा नाम का मतलब क्या है | सारा नाम का विस्तृत विवरण

सारा नाम एक लोकप्रिय और सुंदर नाम है, जो केवल अपने अर्थ के लिए नहीं, बल्कि इसके ऐतिहासिक और धार्मिक महत्व के कारण भी …

Read more

अल्लाह के 99 नाम: महत्व, पुण्य और लाभ

अल्लाह के 99 नाम: महत्व, पुण्य और लाभ

अल्लाह सुब्हानहु वा तआला के 99 महान नाम, जो अस्माउल हुस्ना के नाम से जाने जाते हैं, इस्लाम का एक महत्वपूर्ण हिस्सा हैं। ये …

Read more

इस्लामी दृष्टिकोण से धैर्य का महत्व

इस्लामी दृष्टिकोण से धैर्य का महत्व: जीवन की कठिनाइयों में स्थिरता प्राप्त करने के तरीके

धैर्य की महिमा और मानसिक शांति: धैर्य का महत्व- धैर्य एक अनमोल गुण है, जो हमारे जीवन में शांति और स्थिरता लाता है। इस्लाम …

Read more

इस्लाम में परिवार का महत्व

इस्लाम में परिवार का महत्व: शांति और सफलता की कुंजी

इस्लाम में परिवार की अहमियत: परिवार हमारे जीवन का सबसे महत्वपूर्ण हिस्सा है, जो हमारे सुख-दुख, उत्थान-पतन में हमारे साथ रहता है। इस्लाम में …

Read more

जीवन पर उद्धरण

जीवन पर उद्धरण: जीवन के अद्वितीय अर्थ और प्रेरणा

जीवन एक अद्वितीय यात्रा है, जो हमें विभिन्न अनुभवों, संघर्षों और खुशियों से गुजरने का अवसर प्रदान करती है। हमारे जीवन के मार्ग में …

Read more