晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/rainic/www/oldTZh/wp-content/plugins/persian-gravity-forms/includes/sms/ |
Upload File : |
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Create tables, make relations, helper methods
*/
class GFPersian_SMS_DB {
/**
* @var object WordPress Database
*/
private static object $wpdb;
/**
* @var string
*/
private static string $prefix;
/**
* @var string sms table name
*/
public static string $sms_table;
/**
* @var string sms verification table
*/
public static string $verification_table;
/**
* @var string Gravity Forms table
*/
private static string $form_table;
public static function init() {
global $wpdb;
self::$sms_table = $wpdb->prefix . 'gf_sms_sent';
self::$verification_table = $wpdb->prefix . 'gf_sms_verification';
self::$form_table = RGFormsModel::get_form_table_name();
}
public static function save_sms_sent( $form_id, $entry_id, $sender, $receiver, $message, $verify_code = '' ) {
global $wpdb;
if ( empty( $entry_id ) ) {
$entry_id = ! empty( $verify_code ) ? '_' . $verify_code . '_' : '';
} else {
$entry_id = is_array( $entry_id ) ? implode( ',', $entry_id ) : $entry_id;
}
$form_id = ! empty( $form_id ) ? $form_id : 0;
$receiver = is_array( $receiver ) ? implode( ',', $receiver ) : $receiver;
$wpdb->insert(
self::$sms_table,
[
'date' => date( 'Y-m-d H:i:s', current_time( 'timestamp', 0 ) ),
'form_id' => $form_id,
'entry_id' => $entry_id,
'sender' => $sender,
'reciever' => $receiver, // TODO: Rename the column with rollback support
'message' => $message
],
[
'%s', // date
'%d', // form_id
'%s', // entry_id
'%s', // sender
'%s', // receiver
'%s' // message
]
);
if ( $wpdb->last_error ) {
error_log( 'Database Error: ' . $wpdb->last_error );
}
}
public static function update_entry_verify_sent( $form_id, $entry_id, $verify_code ) {
global $wpdb;
$form_id = ! empty( $form_id ) ? $form_id : 0;
// Handle entry_id: set to empty string if it's not provided
if ( empty( $entry_id ) ) {
$entry_id = '';
} else {
// Convert entry_id to a string if it's an array
$entry_id = is_array( $entry_id ) ? implode( ',', $entry_id ) : $entry_id;
}
// Format verify_code
$verify_code = '_' . $verify_code . '_';
$wpdb->update(
self::$sms_table,
[
'entry_id' => $entry_id,
],
[
'form_id' => $form_id,
'entry_id' => $verify_code,
],
[ '%s' ], // Format for entry_id
[ '%d', '%s' ] // Formats for form_id and verify_code
);
}
public static function insert_verify( $form_id, $entry_id, $mobile, $code, $status, $try_num, $sent_num ) {
global $wpdb;
$sent_verify_table = self::$verification_table;
$entry_id = ! empty( $entry_id ) ? $entry_id : '';
$form_id = ! empty( $form_id ) ? $form_id : 0;
$wpdb->insert(
$sent_verify_table,
[
'form_id' => $form_id,
'entry_id' => $entry_id,
'mobile' => $mobile,
'code' => $code,
'try_num' => $try_num,
'sent_num' => $sent_num,
'status' => $status
],
[
'%d', // form_id
'%d', // entry_id
'%s', // mobile
'%s', // code
'%d', // try_num
'%d', // sent_num
'%d' // status
]
);
}
public static function update_verify( $id, $try_num, $sent_num, $entry_id, $status ) {
global $wpdb;
$entry_id = ! empty( $entry_id ) ? $entry_id : '';
$wpdb->update(
self::$verification_table,
[
'entry_id' => $entry_id,
'try_num' => $try_num,
'sent_num' => $sent_num,
'status' => $status
],
[ 'id' => $id ],
[
'%s', // entry_id
'%d', // try_num
'%d', // sent_num
'%d' // status
],
[ '%d' ] // id
);
}
/**
* Check if a sms is already sent and stored in the gf_sms_sent
*
* @param int $entry_id
* @param int $form_id
* @param string $message
*
* @return bool
* */
public static function check_sms_sent( int $entry_id, int $form_id, string $receiver = '', string $message = '' ): bool {
global $wpdb;
$sql = $wpdb->prepare( "SELECT entry_id FROM " . self::$sms_table . " WHERE entry_id = %d AND form_id = %d AND reciever = %s AND message = %s ", $entry_id, $form_id, $receiver, $message );
$results = $wpdb->get_results( $sql, ARRAY_A );
if ( empty( $results ) ) {
return false;
}
return true;
}
}
GFPersian_SMS_DB::init();