HEX
Server: nginx/1.18.0
System: Linux vcwordpress 5.15.0-174-generic #184-Ubuntu SMP Fri Mar 13 18:41:50 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //var/www/bharti-foundation.stgviitor.com/wp-content/themes/lifeline-child/functions.php
<?php
/**
 * Lifeline Child Theme functions and definitions
 *
 * @link https://developer.wordpress.org/themes/advanced-topics/child-themes/
 */

function lifeline_child_enqueue_styles() {

    // Styles
    wp_enqueue_style( 'lifeline-parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'lifeline-child-style', get_stylesheet_uri(), array( 'lifeline-parent-style' ) );
    wp_enqueue_style( 'lifeline-child-custom', get_stylesheet_directory_uri() . '/assets/css/custom-style.css', array( 'lifeline-child-style' ), '1.0.0' );
    wp_enqueue_style( 'lifeline-child-responsive', get_stylesheet_directory_uri() . '/assets/css/custom-responsive.css', array( 'lifeline-child-custom' ), '1.0.0' );

    // Scripts (IMPORTANT FIXES)
    wp_enqueue_script( 'inkthemes', get_stylesheet_directory_uri() . '/js/recurring/subscription.js', array('jquery'), '1.0.0', true );

    wp_enqueue_script( 'subscription_script', get_stylesheet_directory_uri() . '/js/recurring/subscription_script.js', array('jquery', 'inkthemes'), '1.0.0', true );

    // Razorpay (FIX: use HTTPS)
    wp_enqueue_script( 'inkthemes-razorpay', 'https://checkout.razorpay.com/v1/checkout.js', array(), null, true );

    // Localize (MUST be after enqueue of same handle)
    wp_localize_script( 'inkthemes', 'MyAjax', array( 'ajaxurl' => admin_url('admin-ajax.php') ) );
}
add_action( 'wp_enqueue_scripts', 'lifeline_child_enqueue_styles', 9999 );

require_once get_stylesheet_directory() . '/inc/recurring_donation.php';

add_action('wp_footer', function () {
    ?>
    <script>
    document.addEventListener("DOMContentLoaded", function () {
        const header = document.querySelector('.elementor-element-68a0031e');

        if (!header) return; // safety check

        window.addEventListener('scroll', function () {
            if (window.scrollY > 100) {
                header.classList.add('sticky-header');
            } else {
                header.classList.remove('sticky-header');
            }
        });
    });
    </script>
    <?php
});

add_filter('register_post_type_args', function ($args, $post_type) {
    if ($post_type === 'lif_event') {
        $args['has_archive'] = false; // disable archive
    }
    return $args;
}, 10, 2);


//recurring donation plugin page code
include_once( get_stylesheet_directory() .'/inc/recurring_donation.php');

function recurring_donate_form_shortcode() {
    ob_start();
    ?>

    <section class="recurring-donate-form-section">
    <div class="container-fluid container-lg">
        <div class="text-center recurring-donate-title">
            <h2>Your Donation is Making a difference!</h2>
        </div>
        <form id="recurring_plan" class="donation-form" name="donation-form" method="post">
            <div class="row">
                <div class="form-group col-sm-4">
                    <label class="font-inter text-secondary fs-6 fw-normal">Full Name :</label><span class="aestrick text-primary">*</span>
                    <input type="text" name="name" id="name" value="" class="form_control form-control">
                    <div id="sub_id_error_name_recurring" class="recurring_error_sec"></div>
                </div>
                <div class="form-group col-sm-4">
                    <label class="font-inter text-secondary fs-6 fw-normal">Email :</label><span class="aestrick text-primary">*</span>
                    <input type="text" name="email" id="emailAddress" value="" class="form_control form-control">
                    <div id="sub_id_error_recurring" class="recurring_error_sec"></div>
                </div>
                <div class="form-group col-sm-4">
                    <label class="font-inter text-secondary fs-6 fw-normal">PAN Number :</label><span class="aestrick text-primary">*</span>
                    <input type="text" name="pan_no" id="pan_no" value="" class="form_control form-control">
                    <div id="sub_id_pan_no_error_recurring" class="recurring_error_sec"></div>
                </div>
            </div>
            <ul class="plan-group-block">
                <li class="plan-item plus selected">
                    <div class="d-flex">
                        <div class="plan-radio-btns d-flex align-align-items-center">
                            <div class="d-flex">
                                <input type="radio" class="custom-input-control" id="plus" name="donationPlan" value="plus">
                                <label class="custom-input-label" for="plus">
                                    <p class="plan-name">Individual <span class="plan-desc">(for 1 person)</span></p>
                                </label>
                            </div>
                        </div>
                        <div class="plan-radio-btns d-flex align-align-items-center">
                            <div class="d-flex">
                                <input type="radio" class="custom-input-control" id="standard" name="donationPlan" value="standard" checked="">
                                <label class="custom-input-label" for="standard">
                                    <p class="plan-name">Family &amp; Friends  <span class="plan-desc">(for Groups)</span></p>
                                </label>
                            </div>
                        </div>
                    </div>
                    <div class="plan-item-block">
                        <div class="plan-amount d-flex align-items-center">
                            <div class="plan-label-col">
                                <p class="plan-label-title pb-1">
                                    amount
                                </p>
                                <p class="plan-label-des">
                                    Starting at 10
                                </p>
                            </div>
                            <div class="plan-price custom-select-control">
                                <div class="custom-input-select form-control custom-select-control position-relative">
                                    <span class="currency-text">₹</span>
                                    <select class="select selected_value" name="per_day" id="per_day">
                                        <option value="10">10</option>
                                        <option value="20">20</option>
                                        <option value="30">30</option>
                                        <option value="50">50</option>
                                        <option value="100">100</option>
                                    </select>
                                </div>
                                <p class="plan-label-des day-text position-absolute">Per Day</p>
                            </div>
                        </div>   
                    </div>  
                </li>
                <li class="plan-item standard">
                    <div class="plan-item-block">
                        <div class="plan-amount d-flex align-items-center">
                            <div class="plan-label-col">
                                <p class="plan-label-title pb-1">
                                    amount
                                </p>
                                <p class="plan-label-des">
                                    Starting at 10
                                </p>
                            </div>
                            <div class="plan-price custom-select-control">
                                <div class="custom-input-select form-control custom-select-control position-relative">
                                    <span class="currency-text">₹</span>
                                    <select name="per_day" id="per_day_standard" class="select" disabled="disabled">
                                        <option value="10">10</option>
                                        <option value="20">20</option>
                                        <option value="30">30</option>
                                        <option value="50">50</option>
                                        <option value="100">100</option>
                                    </select>
                                </div>
                                <p class="plan-label-des day-text position-absolute">Per Day</p>
                            </div>
                        </div>
                        <div class="plan-members d-flex align-items-center">
                            <div class="plan-label-col">
                                <p class="plan-label-title pb-1">Members</p>
                                <p class="plan-label-des">Starting at 2 members</p>
                            </div>
                            <div class="plan-users">
                                <div class="custom-input-counter" id="groups">
                                    <span class="count-decrease" style="pointer-events: none;">-</span>
                                    <input type="number" min="2" value="2" max="5" id="person" name="person" readonly="" disabled="disabled">
                                    <span class="count-increase" style="pointer-events: none;">+</span>
                                </div>
                            </div>
                        </div>
                    </div>
                </li>
            </ul>
            <div class="plan-timeframe-block d-flex align-items-center" id="period_sec">
                <div class="d-flex align-items-center form-title-wrapper">
                    <div class="font-inter pay-text">Pay:</div>
                    <div class="plan-radio-btns d-flex align-items-center">   
                        <div class="d-flex align-items-center custom_radio_period">
                            <input type="radio" id="monthly" name="period" value="Monthly" checked="">
                            <label class="custom-input-label">
                                <span class="plan-name">Monthly</span>
                            </label>
                        </div>
                        <div class="d-flex align-items-center custom_radio_period">
                            <input type="radio" id="annually" name="period" value="Annually">
                            <label class="custom-input-label">
                               <span class="plan-name">Annually</span>
                            </label>
                        </div>
                    </div>
                </div>
                 <div class="plan-users-years d-flex align-items-center form-title-wrapper">
                    <div class="font-inter payfor-text">Pay For:</div>
                    <div class="d-flex align-items-center">   
                        <div class="plan-users">
                                <div class="custom-input-counter d-flex no_of_stop_value ">
                                    <span class="count-decrease">-</span>
                                    <input type="number" min="2" value="2" max="15" id="no_of_stop_value" name="no_of_stop_value" readonly="">
                                    <span class="count-increase">+</span>
                                </div>
                        </div> 
                        <div class="font-inter time-text check_monthly_annually_text pay_for">/ Months</div>
                    </div>
                </div>
            </div>
            <div class="form-footer recdonate-total-block">
                <div class="d-flex flex-column align-items-end">
                    <div class="d-flex total-amount-text">
                        <div class="total-label">Total : </div>
                        <div class="amount-total">
                            <span class="total_amount amount-label" name="total_amount" data-myval="0">300</span><label class="check_monthly_annually">Month</label>
                        </div>
                    </div>
                    <div class="total-wrapper">
                        <p class="font-inter appreciate-text">We appreciate your contribution.</p>
                    </div>
                </div>
                <div class="recdonate-action-block d-flex align-items-center justify-content-end">
                    <p class="font-inter tax-80g-des"></p>
                    <input type="button" id="save_data" name="save_data" class="btn-donation btn btn-primary btn-lg fs-6 text-nowrap" value="Proceed Payment">
                    <div class="PaymentButton-Button-rzpBranding"><span class="powered-by-razorpay"><span class="razorpay_powered_by">Secured by</span> <img src="https://cdn.razorpay.com/logo.svg"></span></div>
                </div>
                <input id="sub_id" name="myInputName" type="hidden" value="">
                <input id="razorpay_key" name="razorpay_key" type="hidden" value="rzp_live_4Q9ZWF9oYp67Qq">
                <div id="loader" style="display: none;">
            </div>
            <div class="thank_u" style="display: none;">https://bharti-foundation.com/recurring-donation/ </div>
        
    </div></form>
</div></section>

    <?php
    return ob_get_clean();
}
add_shortcode('recurring_donation_form', 'recurring_donate_form_shortcode');

function razorpay_donate_button_shortcode() {
    return '
    <div class="donate-wrapper">
      <form id="rzp-form">
        <script 
          src="https://checkout.razorpay.com/v1/payment-button.js" 
          data-payment_button_id="pl_JGRq1Cnw0T4grz" 
          async>
        </script>
      </form>
      <button class="custom-donate-btn">Donate Now</button>
    </div>

    <style>
      .donate-wrapper {
        position: relative;
        display: inline-block;
      }
      .donate-wrapper form,
      .donate-wrapper iframe,
      .donate-wrapper span {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        opacity: 0 !important;
        z-index: 2 !important;
        cursor: pointer !important;
      }
      .custom-donate-btn {
        position: relative;
        z-index: 1;
        background-color: #e91e63;
        color: white;
        border: none;
        padding: 12px 32px;
        font-size: 16px;
        border-radius: 6px;
        cursor: pointer;
        transition: background-color 0.3s ease;
      }
      .donate-wrapper:hover .custom-donate-btn {
        background-color: #00bcd4 !important;
      }
    </style>
    ';
}
add_shortcode('donate_button', 'razorpay_donate_button_shortcode');

function mailtrap($phpmailer)
{
    $phpmailer->isSMTP();
    $phpmailer->Host = SMTP_HOST;
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = SMTP_PORT;
    $phpmailer->Username = SMTP_USER;
    $phpmailer->Password = SMTP_PASS;
    $phpmailer->SMTPSecure = SMTP_SECURE;
    $phpmailer->From       = SMTP_FROM;
    $phpmailer->FromName = SMTP_FROM_NAME;
}

add_action('phpmailer_init', 'mailtrap');

add_filter('upload_mimes', 'cc_mime_types');
function cc_mime_types($mimes) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}