<?php
/**
* Plugin Name: Laduli Naukri Search Portal – Pro V11.5 (Advanced Alerts)
* Plugin URI: https://laduli.in/
* Description: Smart Content Detection, Post Status Alerts, and Enhanced Security.
* Version: 11.5
* Author: Laduli Naukri Search Portal
*/

if ( ! defined( ‘ABSPATH’ ) ) exit;

// — 1. SETTINGS & HELPERS —
add_action(‘admin_menu’, ‘lad_v11_menu’);
function lad_v11_menu() {
add_menu_page(‘Laduli Settings’, ‘Laduli Settings’, ‘manage_options’, ‘lad-settings’, ‘lad_v11_settings_page’, ‘dashicons-shield’);
}

function lad_v11_settings_page() {
if (isset($_POST[‘save_v11’])) {
update_option(‘lad_admin_mail’, sanitize_email($_POST[‘l_email’]));
echo ‘<div class=”updated”><p>✅ Settings Saved!</p></div>’;
}
$email = get_option(‘lad_admin_mail’, get_option(‘admin_email’));
echo ‘<div class=”wrap”><h1>Laduli Pro Settings</h1><form method=”post”>
<table class=”form-table”><tr><th>Admin Email:</th><td><input type=”email” name=”l_email” value=”‘.esc_attr($email).'” class=”regular-text”></td></tr></table>
<input type=”submit” name=”save_v11″ class=”button-primary” value=”Save Settings”></form></div>’;
}

function lad_v11_send_mail($to, $subject, $body) {
$headers = array(‘Content-Type: text/html; charset=UTF-8’, ‘From: Laduli Portal <‘ . get_option(‘admin_email’) . ‘>’);
wp_mail($to, $subject, $body, $headers);
}

function lad_get_location($ip) {
$response = wp_remote_get(“https://ip-api.com/json/{$ip}?fields=status,country,regionName,city”, array(‘timeout’ => 5));
if (is_wp_error($response)) return “Unknown Location”;
$body = json_decode(wp_remote_retrieve_body($response));
return ($body && $body->status == ‘success’) ? “{$body->city}, {$body->regionName}, {$body->country}” : “Unknown Location”;
}

// — 2. ENHANCED POST PUBLISH LOGIC —
add_action(‘publish_post’, ‘lad_v11_post_publish_trigger’, 10, 2);
function lad_v11_post_publish_trigger($ID, $post) {
if (get_post_meta($ID, ‘_lad_mail_sent’, true)) return;

$admin_email = get_option(‘lad_admin_mail’, get_option(‘admin_email’));
$author = get_userdata($post->post_author);

// Marathi & English Word Count
$content = strip_tags($post->post_content);
preg_match_all(‘/[\x{0900}-\x{097F}a-zA-Z0-9]+/u’, $content, $matches);
$word_count = count($matches[0]);

$is_low_content = ($word_count < 1000);
$accent_color = $is_low_content ? “#e67e22” : “#27ae60”; // Orange for low, Green for high
$status_title = $is_low_content ? “⚠️ Low Content Alert!” : “✅ Your Post is Live!”;
$button_text = $is_low_content ? “Review & Edit Post” : “View Live Post”;
$button_link = $is_low_content ? get_edit_post_link($ID) : get_permalink($ID);

$marathi_msg = $is_low_content
? “तुमची पोस्ट यशस्वीरित्या जतन झाली आहे, परंतु त्यामध्ये <b>१००० पेक्षा कमी शब्द</b> आहेत. कृपया अधिक माहिती जोडून पोस्ट अपडेट करा.”
: “अभिनंदन! तुमची पोस्ट यशस्वीरित्या पब्लिश झाली आहे. तुमच्या पोस्टमध्ये उत्तम माहिती (१०००+ शब्द) असल्यामुळे ती आता वाचकांसाठी उपलब्ध आहे.”;

// — AUTHOR EMAIL DESIGN —
$author_body = ”
<div style=’font-family: \”Segoe UI\”, Tahoma, sans-serif; max-width: 600px; border: 1px solid #e2e8f0; border-radius: 15px; overflow: hidden; background: #ffffff;’>
<div style=’background: $accent_color; padding: 25px; text-align: center; color: white;’>
<h1 style=’margin: 0; font-size: 22px;’>$status_title</h1>
</div>
<div style=’padding: 30px;’>
<p style=’font-size: 16px; color: #2d3748;’>नमस्कार <b>{$author->display_name}</b>,</p>
<p style=’font-size: 15px; color: #4a5568; line-height: 1.6;’>$marathi_msg</p>

<div style=’background: #f7fafc; border-radius: 10px; padding: 20px; margin: 25px 0; border-left: 4px solid $accent_color;’>
<table style=’width: 100%; border-collapse: collapse;’>
<tr><td style=’padding: 5px; color: #718096;’>पोस्टचे नाव:</td><td style=’font-weight: bold; color: #2d3748;’>{$post->post_title}</td></tr>
<tr><td style=’padding: 5px; color: #718096;’>शब्द संख्या:</td><td style=’font-weight: bold; color: $accent_color;’>$word_count Words</td></tr>
</table>
</div>

<p style=’text-align: center;’>
<a href=’$button_link’ style=’background: $accent_color; color: #ffffff; padding: 14px 30px; text-decoration: none; border-radius: 8px; font-weight: bold; display: inline-block; box-shadow: 0 4px 6px rgba(0,0,0,0.1);’>$button_text</a>
</p>
</div>
<div style=’background: #f8fafc; padding: 15px; text-align: center; font-size: 12px; color: #a0aec0; border-top: 1px solid #edf2f7;’>
© “.date(‘Y’).” Laduli Naukri Search Portal | laduli.in
</div>
</div>”;

// — ADMIN EMAIL (Quick Notification) —
$admin_body = “<div style=’font-family: Arial; padding: 20px; background: #f1f5f9;’>
<div style=’background: #fff; padding: 20px; border-radius: 8px;’>
<h3>📝 New Content Report</h3>
<p><b>Author:</b> {$author->display_name}<br><b>Words:</b> $word_count<br><b>Status:</b> “.($is_low_content ? ‘Needs Review’ : ‘Good Content’).”</p>
<a href='”.get_edit_post_link($ID).”‘>Open Admin Dashboard</a>
</div>
</div>”;

lad_v11_send_mail($author->user_email, “$status_title : ” . $post->post_title, $author_body);
lad_v11_send_mail($admin_email, “📝 Post Report: ” . $author->display_name . ” ($word_count Words)”, $admin_body);

update_post_meta($ID, ‘_lad_mail_sent’, time());
}

// — 3. LOGIN SECURITY ALERT —
add_action(‘wp_login’, ‘lad_v11_login_alert’, 10, 2);
function lad_v11_login_alert($user_login, $user) {
$admin_email = get_option(‘lad_admin_mail’, get_option(‘admin_email’));
$ip = $_SERVER[‘REMOTE_ADDR’];
$location = lad_get_location($ip);
$time = current_time(‘mysql’);
$device = wp_is_mobile() ? “Mobile” : “Desktop/PC”;
$reset_url = wp_lostpassword_url();

$auth_body = ”
<div style=’font-family: Arial, sans-serif; max-width: 600px; border: 1px solid #eee; border-radius: 10px; overflow: hidden; box-shadow: 0 4px 10px rgba(0,0,0,0.1);’>
<div style=’background: #d93025; padding: 20px; text-align: center; color: #fff;’>
<h2 style=’margin:0;’>⚠️ Security Alert</h2>
</div>
<div style=’padding: 30px; line-height: 1.6;’>
<p style=’font-size: 16px;’>नमस्कार <b>{$user->display_name}</b>,</p>
<p style=’font-size: 16px;’>तुमच्या <b>Laduli Naukri Search Portal</b> खात्यात नुकतेच लॉगिन झाले आहे.</p>

<div style=’background: #fff5f5; border: 1px solid #feb2b2; padding: 15px; border-radius: 5px; color: #c53030; margin: 20px 0;’>
<strong>सूचना:</strong> जर हे लॉगिन तुम्ही केले नसेल, तर कृपया सुरक्षा कारणास्तव त्वरित तुमचा पासवर्ड रिसेट करा किंवा ॲडमिनशी संपर्क साधा.
</div>

<p style=’text-align: center; margin-top: 30px;’>
<a href=’$reset_url’ style=’background: #d93025; color: #ffffff; padding: 12px 25px; text-decoration: none; border-radius: 5px; font-weight: bold; display: inline-block;’>Reset Password Now</a>
</p>
<p style=’font-size: 12px; color: #777; text-align:center;’>वेळ: $time | डिव्हाइस: $device</p>
</div>
</div>”;

lad_v11_send_mail($user->user_email, “⚠️ Security Alert: New Login Detected”, $auth_body);

// Admin log includes location
$adm_body = “<h3>Login Info</h3><p>User: {$user->display_name}<br>IP: $ip<br>Loc: $location</p>”;
lad_v11_send_mail($admin_email, “🔑 Admin Login: ” . $user->display_name, $adm_body);
}

Federal Bank Recruitment/फेडरल बँकेत ऑफिस असिस्टंट पदाची भरती.


 

 

 

General Instructions
8.1 Candidates applying for the selection process should not have any criminal record.
8.2 Bank takes no responsibility for any delay in online registration or communications including
those on the part of the Assessment partner.
8.3 Except for the application fees as mentioned above, no other fees shall be paid to any vendor,
agency or individual in connection with the selection process.
8.4 The Bank reserves the right to close the application window at any time before the cut off date
i.e. 04th March 2026 based on volume of applications received, if the required threshold is
met. Therefore candidates are advised to submit their application at the earliest opportunity to
participate in the selection process
8.5 Federal Bank reserves the right to make any changes to the selection process at their
discretion.
8.6 Request for change of date or time for any selection stage/s will not be entertained.
8.7 Candidates who fail to appear in any of the selection round during any of the
selection round owing to technical or other reasons whatsoever, will not be permitted to revisit
the same. Also, the request for a rescheduled timing for that particular round or selection
process as a whole will not be considered.
8.8 Candidates are advised not to change their facial appearance from that on the photograph
submitted to the Bank till the selection process is complete.
8.9 If the identity of the candidate is in doubt, Bank will have the right to deny the candidate from
participating in the selection process, at any stage.

8.10 Candidates have to bear the expenses to attend the selection stages at the stipulated
date and time.
8.11 Bank has the right to reject any application / candidature at any stage without assigning
any reason and the decision of the Bank shall be final.
8.12 Recording or sharing the content / details of any selection rounds of the recruitment process
privately or on social media or discussion forums is strictly prohibited. Any candidate engaged in
such activities will be disqualified and will be debarred from participating in future
recruitment processes of the Bank.
8.13 If a candidate is found guilty of any unfair means at any stage, he / she will be disqualified from
the selection process. In case any such instances are detected at any stage of the recruitment
process, even after appointment, services of such candidates are liable to be terminated.
8.14 Onboarding of the shortlisted candidates will be subject to his / her being declared medically
fit by the Bank’s Medical Officer, satisfactory report about his / her character and antecedents
by the Police Authorities, Credit History including CIBIL / Experian scores and status,
satisfactory references from respectable referees, verification of certificates and completion of
all other formalities to the complete satisfaction of the Bank.

 

Selection Rounds
6.1 Selection rounds for the recruitment process will be Group Discussion, Aptitude Test and Personal
Interview or any other mode of selection as decided by the Bank.
6.2 Group Discussion will be conducted virtually through Microsoft Teams.
6.3 Aptitude Test and Personal Interview or any other mode of selection as decided by the Bank will be
conducted across various centres and candidates will have to travel to the centres allotted by the
Bank to participate in the selection process unless otherwise decided by the Bank. The mode of the
selection process will be depending upon the prevailing situations / number of candidates / discretion
of the Bank.
6.4 Marks / Ratings secured by the candidates during any of the selection rounds will be confidential and
the same will not be disclosed to anyone, including the candidates at any point of time.
6.5 Decision of the Bank with respect to the qualifying criteria in each selection round will be final and
binding on the candidates and the same will not be disclosed.

 

 

Laduli

MENU