��<?php /* Plugin Name: Tenderslink Display Description: Displays tenders from Tenderfile.csv with search and pagination. Version: 1.0 Author: Custom */ function tenderslink_display_shortcode() { $csv_file = WP_CONTENT_DIR . '/Tenderfile.csv'; ob_start(); ?> <div class="tenderslink-search-wrapper"> <form class="tenderslink-search-form" role="search" method="get"> <input type="search" class="tenderslink-search-input" placeholder="Search tenders..." value="" /> <button type="submit" class="tenderslink-search-button">Search</button> </form> </div> <div class="tenderslink-tender-list" id="tenderslink-tender-list"> <?php if (file_exists($csv_file) && ($handle = fopen($csv_file, 'r')) !== false) { $header = fgetcsv($handle); $count = 0; while (($data = fgetcsv($handle)) !== false && $count < 10000) { // Changed from 500 to 10000 $tln = esc_attr($data[0]); $authority = esc_html($data[1]); $title = esc_html($data[2] === '#NAME?' ? $data[6] : $data[2]); $tender_id = esc_html($data[3]); $tender_value = esc_html($data[4]); $due_date = esc_html($data[5]); $work_brief = esc_html($data[6]); $status_link = 'https://tenderslink.com/subscribe-0/'; ?> <div class="tenderslink-tender-container" data-tln="<?php echo $tln; ?>"> <div class="tenderslink-tender-header"> <h3><?php echo $authority; ?></h3> <a class="tenderslink-tender-button" href="<?php echo $status_link; ?>">View Status</a> </div> <hr class="tenderslink-tender-divider"/> <p class="tenderslink-tender-title"><strong>Title:</strong> <?php echo $title; ?></p> <div class="tenderslink-tender-details"> <span><strong>TLN:</strong> <?php echo $tln; ?></span> <span><strong>Tender ID:</strong> <span class="tenderslink-blurred"><?php echo $tender_id; ?></span></span> <span><strong>Due Date:</strong> <?php echo $due_date; ?></span> </div> <p class="tenderslink-tender-value"><strong>Tender Value:</strong> <span class="tenderslink-blurred"><?php echo $tender_value; ?></span></p> <p class="tenderslink-tender-brief admin-only"><strong>Work Brief:</strong> <?php echo $work_brief; ?></p> </div> <?php $count++; } fclose($handle); } else { echo '<p>Error: Unable to load tenders. Please check Tenderfile.csv.</p>'; } ?> <div class="tenderslink-pagination"> <button id="tenderslink-prev-page" disabled>Previous</button> <span id="tenderslink-page-info">Page 1 of 1000</span> <!-- Updated to reflect potential max pages --> <button id="tenderslink-next-page">Next</button> </div> </div> <?php return ob_get_clean(); } add_shortcode('tenderslink_list', 'tenderslink_display_shortcode'); function tenderslink_enqueue_assets() { if (has_shortcode(get_post()->post_content, 'tenderslink_list')) { wp_enqueue_style('tenderslink-styles', plugin_dir_url(__FILE__) . 'tenderslink-styles.css', [], '1.0'); wp_enqueue_script('tenderslink-script', plugin_dir_url(__FILE__) . 'tenderslink-script.js', [], '1.0', true); } } add_action('wp_enqueue_scripts', 'tenderslink_enqueue_assets'); function tenderslink_body_class($classes) { if (current_user_can('manage_options')) { $classes[] = 'admin-logged-in'; } return $classes; } add_filter('body_class', 'tenderslink_body_class'); function tenderslink_admin_menu() { add_menu_page('Tenderslink Generator', 'Tenderslink', 'manage_options', 'tenderslink-generator', 'tenderslink_generate_html_page'); } add_action('admin_menu', 'tenderslink_admin_menu'); function tenderslink_generate_html_page() { if (!current_user_can('manage_options')) { wp_die('Unauthorized.'); } $csv_file = WP_CONTENT_DIR . '/Tenderfile.csv'; $output_file = WP_CONTENT_DIR . '/tenders.html'; if (isset($_POST['generate_tenders']) && file_exists($csv_file)) { $html = '<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Tender List</title>'; $html .= '<link rel="stylesheet" href="' . plugin_dir_url(__FILE__) . 'tenderslink-styles.css">'; $html .= '</head><body>'; $html .= '<div class="tenderslink-search-wrapper"><form class="tenderslink-search-form" role="search" method="get"><input type="search" class="tenderslink-search-input" placeholder="Search tenders..." value="" /><button type="submit" class="tenderslink-search-button">Search</button></form></div>'; $html .= '<div class="tenderslink-tender-list" id="tenderslink-tender-list">'; if (($handle = fopen($csv_file, 'r')) !== false) { $header = fgetcsv($handle); $count = 0; while (($data = fgetcsv($handle)) !== false && $count < 10000) { // Changed from 500 to 10000 $tln = htmlspecialchars($data[0]); $authority = htmlspecialchars($data[1]); $title = htmlspecialchars($data[2] === '#NAME?' ? $data[6] : $data[2]); $tender_id = htmlspecialchars($data[3]); $tender_value = htmlspecialchars($data[4]); $due_date = htmlspecialchars($data[5]); $work_brief = htmlspecialchars($data[6]); $status_link = 'https://tenderslink.com/subscribe-0/'; $html .= "<div class=\"tenderslink-tender-container\" data-tln=\"{$tln}\"><div class=\"tenderslink-tender-header\"><h3>{$authority}</h3><a class=\"tenderslink-tender-button\" href=\"{$status_link}\">View Status</a></div><hr class=\"tenderslink-tender-divider\"/><p class=\"tenderslink-tender-title\"><strong>Title:</strong> {$title}</p><div class=\"tenderslink-tender-details\"><span><strong>TLN:</strong> {$tln}</span><span><strong>Tender ID:</strong> <span class=\"tenderslink-blurred\">{$tender_id}</ >B25BAB25=: <span><strong>Due Date:</strong> {$due_date}</span></div><p class=\"tenderslink-tender-value\"><strong>Tender Value:</strong> <span class=\"tenderslink-blurred\">{$tender_value}</span></p><p class=\"tenderslink-tender-brief admin-only\"><strong>Work Brief:</strong> {$work_brief}</p></div>"; $count++; } fclose($handle); } $html .= '<div class="tenderslink-pagination"><button id="tenderslink-prev-page" disabled>Previous</button><span id="tenderslink-page-info">Page 1 of 1000</span><button id="tenderslink-next-page">Next</button></div></div>'; $html .= '<script src="' . plugin_dir_url(__FILE__) . 'tenderslink-script.js"></script>'; $html .= '</body></html>'; if (file_put_contents($output_file, $html)) { echo '<div class="notice notice-success"><p>tenders.html generated at: ' . $output_file . '</p></div>'; } else { echo '<div class="notice notice-error"><p>Failed to generate tenders.html.</p></div>'; } } ?> <div class="wrap"> <h1>Tenderslink HTML Generator</h1> <form method="post"> <p><input type="submit" name="generate_tenders" class="button button-primary" value="Generate tenders.html"></p> </form> </div> <?php } ?>
Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896
{"id":1863,"date":"2025-03-25T13:57:34","date_gmt":"2025-03-25T13:57:34","guid":{"rendered":"https:\/\/tenderslink.com\/?page_id=1863"},"modified":"2025-03-25T13:57:34","modified_gmt":"2025-03-25T13:57:34","slug":"about-us-0","status":"publish","type":"page","link":"https:\/\/tenderslink.com\/?page_id=1863","title":{"rendered":"About Tender Link"},"content":{"rendered":"\n
\n

<\/p>\n\n\n\n

\n

<\/h2>\n\n\n\n
\n
\n

About Us<\/h3>\n\n\n\n
\n\n\n\n

<\/p>\n\n\n\n

Tender Link is a leading platform that connects businesses with procurement opportunities, streamlining the tendering process for both suppliers & buyers. We provide access to a comprehensive database of tenders from public & private sectors, with a strong focus on opportunities across India. Our user-friendly tools enable businesses to search, track & bid on tenders efficiently, saving time & reducing costs. By offering real-time updates, we ensure users never miss critical opportunities. Our subscription plans unlock advanced features, including analytics & tailored insights. With advanced search filters, users can easily find relevant tenders based on location, industry & tender value, ensuring precision in opportunity matching. Our mission is to empower contractors, vendors & businesses of all sizes to grow through successful bids. Operating primarily in India, Tender Link is committed to delivering timely & accurate tender information. We pride ourselves on simplifying the tendering process, making it accessible & efficient. Our platform is designed to help businesses thrive in competitive markets. By leveraging technology, we provide a seamless experience for discovering & pursuing tenders. Tender Link is your trusted partner in navigating the world of procurement. Join us to unlock a wealth of opportunities & elevate your business success.<\/p>\n\n\n\n

\n
Call Us<\/strong><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n
<\/div>\n<\/div>\n\n\n\n
\n

<\/h2>\n\n\n\n
\n
\n

Our Aim<\/strong><\/h3>\n\n\n\n
\n\n\n\n

Tender Link aims to streamline the tender discovery process for all users. We seek to provide a comprehensive database covering all Indian sectors. Our platform is designed to deliver customized alerts based on user preferences. We intend to ensure no opportunity is missed by our users. We aim to enhance the efficiency of tender bidding processes. Our focus is on delivering real-time updates for maximum relevance. We strive to make tender information accessible and actionable. Our goal is to support vendors in winning more contracts. We aim to continuously innovate and improve our platform. Ultimately, we want to empower businesses to succeed in competitive markets.<\/p>\n<\/div>\n\n\n\n

\n

Vision<\/strong><\/h3>\n\n\n\n
\n\n\n\n

Tender Link aspires to be the leading platform for tender alerts in India, revolutionizing how contractors & vendors access opportunities. We envision a seamless, technology-driven ecosystem that empowers businesses to thrive. Our goal is to connect every contractor & vendor with relevant tenders effortlessly. By leveraging innovation, we aim to simplify the tender discovery process. We strive to foster transparency & efficiency in the tendering landscape. Our vision includes expanding our reach across all sectors in India. We aim to set a global benchmark for tender alert platforms. We are committed to empowering businesses with timely, actionable insights. Our platform will drive growth and competitiveness for our users. Ultimately, we see Tender Link as a catalyst for economic progress.<\/p>\n<\/div>\n<\/div>\n\n\n\n

\n
\n

Mission<\/strong><\/h3>\n\n\n\n
\n\n\n\n

Our mission is to provide contractors & vendors with unparalleled access to tender opportunities. We deliver real-time, accurate & relevant tender alerts across India. By utilizing cutting-edge technology, we ensure a user-friendly experience. We are dedicated to helping businesses find tenders that match their expertise. Our platform bridges the gap between authorities & vendors efficiently. We strive to maintain an extensive, up-to-date tender database. We empower users with advanced search tools for precise results. Our commitment is to enhance our users\u2019 success in securing contracts. We aim to support businesses of all sizes in their growth journey. Tender Link is driven to create value for every stakeholder.<\/p>\n<\/div>\n\n\n\n

\n

Join Us<\/strong><\/h3>\n\n\n\n
\n\n\n\n

Tender Link excels with its extensive, real-time tender database covering all Indian sectors. Our advanced search filters ensure precise, tailored alerts for users. We prioritize user experience with an intuitive, efficient platform. Our commitment to timely updates keeps users ahead of opportunities. We empower businesses to succeed in competitive tendering landscapes<\/p>\n<\/div>\n<\/div>\n\n\n\n

<\/div>\n<\/div>\n\n\n\n
\n
<\/div>\n\n\n\n

<\/p>\n\n\n\n

\n
\n
\n

Tender Link Stands Out! How?<\/h3>\n\n\n\n
\n\n\n\n