Uname:Linux ip-11-115-0-196 6.8.0-1039-aws #41~22.04.1-Ubuntu SMP Thu Sep 11 10:54:48 UTC 2025 x86_64

403WebShell
403Webshell
Server IP : 13.126.101.145  /  Your IP : 216.73.216.63
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ip-11-115-0-196 6.8.0-1039-aws #41~22.04.1-Ubuntu SMP Thu Sep 11 10:54:48 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.3.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/rentals_updated/wp-content/plugins/Sell Enquiry/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/rentals_updated/wp-content/plugins/Sell Enquiry/sell-enquiry.php
<?php
/*
Plugin Name: Sell Enquiry Form
Plugin URI: https://yourwebsite.com
Description: A custom plugin to add a sell enquiry form using a shortcode.
Version: 1.0
Author: itrosys
*/

if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly.
}

if (is_admin()) {
    require_once plugin_dir_path(__FILE__) . 'admin-list.php';
}

// Function to create the database table on plugin activation
function sell_enquiry_create_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'sell_enquiry';
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE IF NOT EXISTS $table_name (
        id BIGINT(20) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        full_name VARCHAR(255) NOT NULL,
        email VARCHAR(255) NOT NULL,
        phone VARCHAR(20) NOT NULL,
        location VARCHAR(255) NOT NULL,
        product_name VARCHAR(255) NOT NULL,
        additional_equipment VARCHAR(255) DEFAULT NULL,
        images TEXT DEFAULT NULL,
        remarks TEXT DEFAULT NULL,
        created_at DATETIME DEFAULT CURRENT_TIMESTAMP
    ) $charset_collate;";

    require_once ABSPATH . 'wp-admin/includes/upgrade.php';
    dbDelta($sql);
}
register_activation_hook(__FILE__, 'sell_enquiry_create_table');

// Enqueue scripts
function sell_enquiry_enqueue_scripts() {
    wp_enqueue_script('jquery');
    wp_enqueue_script(
        'sell-enquiry-script',
        plugin_dir_url(__FILE__) . 'sell-enquiry.js',
        array('jquery'),
        '1.0',
        true
    );
    wp_localize_script(
        'sell-enquiry-script',
        'sellEnquiry',
        array(
            'ajaxurl' => admin_url('admin-ajax.php'),
            'nonce' => wp_create_nonce('sell_enquiry_nonce') // Add nonce for security
        )
    );
}
add_action('wp_enqueue_scripts', 'sell_enquiry_enqueue_scripts');

function sell_enquiry_form_shortcode() {
    ob_start();
    ?>
    <style>
        label {
            color: #000;
            font-size: 18px;
            font-weight: 700;
        }

        .submit-btn {
            background-color: #000 !important;
            color: #ffbd2b !important;
            border: 1px solid #000 !important;
            font-weight: 700 !important;
            letter-spacing: 1px !important;
        }

        .submit-btn:hover {
            background-color: #ffbd2b !important;
            color: #000 !important;
        }

#leadCreateForm input[type="text"], #leadCreateForm input[type="email"], #leadCreateForm input[type="tel"], #leadCreateForm select, #leadCreateForm textarea {
    border: 1px solid #c4c4c4 !important;
    border-radius: 7px !important;
}

        input#enq_images {
            padding: 0;
            border: none;
            background-color: transparent;
        }
    </style>
    <h4 class="mb-0" style="color:#FFBD2B;font-size: 18px;">GET IN TOUCH</h4>
    <h2 style="font-size:34px;">Sell Your Equipment</h2>
    <form class="form-horizontal" method="post" id="leadCreateForm">
        <div class="form-row">
            <div class="form-group col-md-6">
                <label for="full_name">Full Name <span class="required">*</span></label>
                <input type="text" class="form-control" id="full_name" name="full_name" required>
            </div>
            <div class="form-group col-md-6">
                <label for="lead_email">Email Address <span class="required">*</span></label>
                <input type="email" class="form-control" id="lead_email" name="lead_email" required>
            </div>
        </div>
        <div class="form-row">
            <div class="form-group col-md-6">
                <label for="lead_phone">Phone Number <span class="required">*</span></label>
                <input type="tel" class="form-control" id="lead_phone" name="lead_phone" maxlength="10" pattern="[0-9]{10}" required>
            </div>
            <div class="form-group col-md-6">
                <label for="enq_location">Select Location <span class="required">*</span></label>
                <select class="form-control" id="enq_location" name="location" required>
                    <option value="">Select Location</option>
                    <?php
                        $locations = [
                            "Andhra Pradesh", "Andaman and Nicobar Islands", "Arunachal Pradesh", "Assam", "Bihar", "Chandigarh", "Chhattisgarh", "Dadar and Nagar Haveli", "Daman and Diu", "Delhi", "Lakshadweep", "Puducherry", "Goa", "Gujarat", "Haryana", "Himachal Pradesh", "Jammu and Kashmir", "Jharkhand", "Karnataka", "Kerala", "Madhya Pradesh", "Maharashtra", "Manipur", "Meghalaya", "Mizoram", "Nagaland", "Odisha", "Punjab", "Rajasthan", "Sikkim", "Tamil Nadu", "Telangana", "Tripura", "Uttar Pradesh", "Uttarakhand", "West Bengal"
                        ];
                        foreach ($locations as $location) {
                            echo "<option value='$location'>$location</option>";
                        }
                    ?>
                </select>
            </div>
        </div>
        <div class="form-row">
            <div class="form-group col-md-6">
                <label for="product_name">Select Equipment <span class="required">*</span></label>
                <select class="form-control" id="product_name" name="product_name" required>
                    <option value="">Select Equipment</option>
                    <?php
                        $query = new WP_Query([
                            'post_type'      => 'product',
                            'post_status'    => 'publish',
                            'posts_per_page' => -1,
                        ]);

                        $shown_titles = []; // store unique titles

                        if ($query->have_posts()) {
                            while ($query->have_posts()) {
                                $query->the_post();
                                $title = get_the_title();

                                if (!in_array($title, $shown_titles)) {
                                    echo "<option value='" . esc_attr($title) . "'>" . esc_html($title) . "</option>";
                                    $shown_titles[] = $title; // add to shown list
                                }
                            }
                            wp_reset_postdata();
                        }
                    ?>
                </select>
            </div>
            <div class="form-group col-md-6">
                <label for="subsidary_products">Select Additional Equipment</label>
                <select class="form-control" id="subsidary_products" name="subsidary_products">
                    <option value="">Select Additional Equipment</option>
                    <?php
                        global $wpdb;
                        $result = $wpdb->get_results("SELECT name FROM wp_equipments");
                        foreach ($result as $row) {
                            echo "<option value='$row->name'>$row->name</option>";
                        }
                    ?>
                </select>
            </div>
        </div>
        <div class="form-group">
            <label for="addn">Remarks</label>
            <textarea class="form-control" name="addn" id="addn"></textarea>
        </div>
        <div class="form-group">
            <label for="enq_images">Upload Images</label>
            <input type="file" class="form-control" id="enq_images" name="enq_images[]" multiple accept="image/*">
            <!-- Preview container -->
            <div id="imagePreview" style="margin-top:10px; display:flex; flex-wrap:wrap; gap:10px;"></div>
        </div>
        <div id="feedback"></div>
        <button type="submit" class="btn btn-primary submit-btn" id="submitButton">SUBMIT</button>
    </form>
    <?php
    return ob_get_clean();
}
add_shortcode('sell_enquiry_form', 'sell_enquiry_form_shortcode');

function save_sell_enquiry() {
    global $wpdb;

    // Verify nonce for security
    check_ajax_referer('sell_enquiry_nonce', 'nonce');

    // Sanitize fields
    $full_name = sanitize_text_field($_POST['full_name'] ?? '');
    $email = sanitize_email($_POST['lead_email'] ?? '');
    $phone = sanitize_text_field($_POST['lead_phone'] ?? '');
    $location = sanitize_text_field($_POST['location'] ?? '');
    $product_name = sanitize_text_field($_POST['product_name'] ?? '');
    $additional_equipment = sanitize_text_field($_POST['subsidary_products'] ?? '');
    $remarks = sanitize_textarea_field($_POST['addn'] ?? '');

    // Handle file upload
    $uploaded_images = [];
    if (!empty($_FILES['enq_images']['name'][0])) {
        require_once(ABSPATH . 'wp-admin/includes/file.php');
        require_once(ABSPATH . 'wp-admin/includes/media.php');
        require_once(ABSPATH . 'wp-admin/includes/image.php');

        foreach ($_FILES['enq_images']['name'] as $key => $value) {
            if ($_FILES['enq_images']['name'][$key]) {
                $file = [
                    'name'     => $_FILES['enq_images']['name'][$key],
                    'type'     => $_FILES['enq_images']['type'][$key],
                    'tmp_name' => $_FILES['enq_images']['tmp_name'][$key],
                    'error'    => $_FILES['enq_images']['error'][$key],
                    'size'     => $_FILES['enq_images']['size'][$key]
                ];

                $upload = wp_handle_upload($file, ['test_form' => false]);
                if (isset($upload['url'])) {
                    $uploaded_images[] = $upload['url'];
                } elseif (isset($upload['error'])) {
                    wp_send_json_error(['message' => $upload['error']]);
                }
            }
        }
    }

    // Insert into DB
    $result = $wpdb->insert(
        $wpdb->prefix . 'sell_enquiry',
        [
            'full_name'            => $full_name,
            'email'                => $email,
            'phone'                => $phone,
            'location'             => $location,
            'product_name'         => $product_name,
            'additional_equipment' => $additional_equipment,
            'remarks'              => $remarks,
            'images'               => !empty($uploaded_images) ? implode(',', $uploaded_images) : null,
            'created_at'           => current_time('mysql')
        ]
    );

    if ($result === false) {
        wp_send_json_error(['message' => 'Database insertion failed: ' . $wpdb->last_error]);
    } else {
        wp_send_json_success(['message' => 'Enquiry submitted successfully']);
    }
}

add_action('wp_ajax_save_sell_enquiry', 'save_sell_enquiry');
add_action('wp_ajax_nopriv_save_sell_enquiry', 'save_sell_enquiry');

Youez - 2016 - github.com/yon3zu
LinuXploit