azdev 0 ارسال شده در آبان 96 گزارش بازنشر ارسال شده در آبان 96 سلام. من با افزونه form یه فرمی رو توی سایت وردپرسی درست کردم.و تو این فرم یه کد پرسنلی باید وارد بشه و می خوام کد پرسنلی که وارد میشه با جدول کد پرسنلی که توی پایگاه داده درست کردم مقایسه بشه اگه وجود داشت فرم ارسال بشه وگرنه ارور بده... 1.اگه ممکنه تو نوشتن کد کمکم کنید. 2.این کد و باید کجای قالب استفاده کنم؟ ممنون نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در آبان 96 گزارش بازنشر ارسال شده در آبان 96 سلام و درود باید بیشتر توضیح بدید. استرکچر تیبلتون توی دیتابیس به چه شکله؟ فیلدهای فرمتون به چه شکله؟ 1 نقل قول لینک به ارسال
فرحان 997 ارسال شده در آبان 96 گزارش بازنشر ارسال شده در آبان 96 از هر فرم سازی استفاده کردین باید api ش رو توی سایتش مطالعه کنید. معمولا با استفاده از تابع do_action یا apply_filters روی مقادیر ثبت شده فیلتر می گذارن که باید توی داکیومنت هاشون ببینید دقیقا اسمش چیه و برای هوک زدن بهشون باید از add_action یا add_filter استفاده کنید. کدتون هم هرجایی میتونید بزارید مثلا توی فانکشن پوسته یا اگر یه افزونه برا خودتون میسازید توی فایل اصلیش. برای استخراج دیتا از تیبل خودتون هم باید از global $wpdb استفاده کنید. موفق باشید. 1 نقل قول لینک به ارسال
azdev 0 ارسال شده در آبان 96 مالک گزارش بازنشر ارسال شده در آبان 96 register_activation_hook( __FILE__, 'endo_create_custom_table' ); function endo_create_custom_table() { global $wpdb; $table_name = $wpdb->prefix . "custom_table"; $sql = "CREATE TABLE $table_name( id mediumint(9) NOT NULL AUTO_INCREMENT, personnel code mediumint(1) DEFAULT 0, UNIQUE KEY id(id) ) COLLATE utf8_general_ci;"; require_once(ABSPATH . '/wp-admin/includes/upgrade.php'); dbDelta($sql); } add_action('gform_after_submission', 'endo_add_entry_to_db', 10, 2); function endo_add_entry_to_db($entry, $form) { // uncomment to see the entry object // echo '<pre>'; // var_dump($entry); // echo '</pre>'; $source = $entry['source_url']; $personnel-code = $entry[3]; global $wpdb; $result = $wpdb->get_results( " select * from $wpdb->table_name"); foreach($result as $index => $value){ if($value == $personnel-code){ } else echo 'error'; } ); } من این کد نوشتم ولی نمیدونم درسته یا نه .ممنون میشم اگه غلطه درستشو بهم بگید...اسم افزونه فرمم gravity form هستش. این هم عکس فرمم. نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در آبان 96 گزارش بازنشر ارسال شده در آبان 96 درود مجدد از اکشن خوبی استفاده نکردید این اکشن بعد از اتمام کارها اجرا میشه باید از اکشن gform_pre_submission استفاده کنید. اگر اسم تیبلتون custom_table باشه یه چیزی توی این مایه ها باید بشه. add_action('gform_pre_submission', 'endo_add_entry_to_db'); function endo_add_entry_to_db($form) { $personnelCode = $_POST['input_10']; // اینجا فرض شده نام فیلدی که داخلش کد پرسنلی وارد میشه input_10 باشه if(!is_numeric($personnelCode)) { echo "کد پرسنلی صرفا باید شامل اعداد باشد"; exit; } global $wpdb; $table_name = $wpdb->prefix . "custom_table"; $data = $wpdb->get_row($wpdb->prepare("SELECT 'personnel code' FROM $table_name WHERE 'personnel code' = %d", (int) $personnelCode)); if($data === null) { echo "کد پرسنلی مورد نظر یافت نشد"; exit; } } نقل قول لینک به ارسال
azdev 0 ارسال شده در آبان 96 مالک گزارش بازنشر ارسال شده در آبان 96 در 7 دقیقه قبل، mehran-b گفته است : درود مجدد از اکشن خوبی استفاده نکردید این اکشن بعد از اتمام کارها اجرا میشه باید از اکشن gform_pre_submission استفاده کنید. اگر اسم تیبلتون custom_table باشه یه چیزی توی این مایه ها باید بشه. add_action('gform_pre_submission', 'endo_add_entry_to_db'); function endo_add_entry_to_db($form) { $personnelCode = $_POST['input_10']; // اینجا فرض شده نام فیلدی که داخلش کد پرسنلی وارد میشه input_10 باشه if(!is_numeric($personnelCode)) { echo "کد پرسنلی صرفا باید شامل اعداد باشد"; exit; } global $wpdb; $table_name = $wpdb->prefix . "custom_table"; $data = $wpdb->get_row($wpdb->prepare("SELECT 'personnel code' FROM $table_name WHERE 'personnel code' = %d", (int) $personnelCode)); if($data === null) { echo "کد پرسنلی مورد نظر یافت نشد"; exit; } } درود بر شما.. اسم تیبلم custom table نیست... نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در آبان 96 گزارش بازنشر ارسال شده در آبان 96 در 5 دقیقه قبل، azdev گفته است : درود بر شما.. اسم تیبلم custom table نیست... خوب توی این خط $table_name = $wpdb->prefix . "custom_table"; اسم تیبل هر چی هست بزنید. نقل قول لینک به ارسال
azdev 0 ارسال شده در آبان 96 مالک گزارش بازنشر ارسال شده در آبان 96 در 4 دقیقه قبل، mehran-b گفته است : خوب توی این خط $table_name = $wpdb->prefix . "custom_table"; اسم تیبل هر چی هست بزنید. ممنون بابت راهنماییتون نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در آبان 96 گزارش بازنشر ارسال شده در آبان 96 در هم اکنون، azdev گفته است : ممنون بابت راهنماییتون خواهش میکنم. نقل قول لینک به ارسال
azdev 0 ارسال شده در آبان 96 مالک گزارش بازنشر ارسال شده در آبان 96 در در 11/3/2017 at 10:40، mehran-b گفته است : درود مجدد از اکشن خوبی استفاده نکردید این اکشن بعد از اتمام کارها اجرا میشه باید از اکشن gform_pre_submission استفاده کنید. اگر اسم تیبلتون custom_table باشه یه چیزی توی این مایه ها باید بشه. add_action('gform_pre_submission', 'endo_add_entry_to_db'); function endo_add_entry_to_db($form) { $personnelCode = $_POST['input_10']; // اینجا فرض شده نام فیلدی که داخلش کد پرسنلی وارد میشه input_10 باشه if(!is_numeric($personnelCode)) { echo "کد پرسنلی صرفا باید شامل اعداد باشد"; exit; } global $wpdb; $table_name = $wpdb->prefix . "custom_table"; $data = $wpdb->get_row($wpdb->prepare("SELECT 'personnel code' FROM $table_name WHERE 'personnel code' = %d", (int) $personnelCode)); if($data === null) { echo "کد پرسنلی مورد نظر یافت نشد"; exit; } } با عرض معذرت من این کد تو فایل function.php که میذارم اصلا جواب نمیگیرم... به جای prefixباید prefix دیتابیسمو بذارم؟ نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در آبان 96 گزارش بازنشر ارسال شده در آبان 96 سلام و درود نقل قول من این کد تو فایل function.php که میذارم اصلا جواب نمیگیرم... آره احتمالش هم هست جواب نده. اگر مایلید خود بنده هم به بررسی بکنم براتون از خصوصی در ارتباط باشید. نقل قول به جای prefixباید prefix دیتابیسمو بذارم؟ خیر. موفق باشید نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .