مهدی سلطانی
8 ماه پیش توسط مهدی سلطانی مطرح شد
3 پاسخ

افزو دن تب به قسمت افزودن محصول و ثبت اطلاعات آن در پایگاه داده

در قسمت افزودن محصول یک تب اضافه کردم که یک چک باکس داخل آن تب هست اگه چک تیکش خورده باشه اطلاعات گفنه شده نمایش داده میشه و اگر نه نمایش داده نمیشه
مشکل اینجاست که فعال یا غیر فعال بودن تیک رو نمیتونم تو پایگاه داده ذخیره کنم
 تصویر


ثبت پرسش جدید
oss_vahid
تخصص : wordpress developer
@ossvahid 8 ماه پیش مطرح شد
0

سلام با همین کدی که بهتون دادم از طریق هوک
save_post_product و تابع update_post_meta میتونید داخل دیتابیس ذخیرش کنید و مقدار رو باید از طریق تابع get_post_meta بگیرید و بالای چک باکس وارد کنید که مثلا وقتی مقدارش فلان بود چک باکس فعال باشه یا نه

الان این خروجی هست گرفتید داخل پنل my Custom tab رو میگم شما اومدی از طریق ی Callback یک چک باکس رو داخل پنلی که ساختی نوشتی درسته؟

add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) { 

  $tabs['new_tab'] = array(
    'title'     => __( 'New Tab', 'woocommerce' ),
    'priority'  => 50,
    'callback'  => 'woo_new_product_tab_content' );

  return $tabs; }

function woo_new_product_tab_content() {
global $product;
    $product_id = $product->get_ID();
  // اینجا شما اومدی ی فیلد ساختی 
$feild___data ="";
$feild___data = get_post_meta($product_id,'feild_key',true);
‌if ($feild___data== "on") {
<input name="feild_key" checked type="checkbox"> 
}else {
<input name="feild_key" type="checkbox"> 
}
 } 

خب اومدیم ی فیلد ساختیم و مقدار رو گرفتیم و گفتیم اگه مقدار on بود فیلم رو checked کن الان ما باید مقدار رو داخل دیتابیس ذخیره کنیم

add_action('save_post_product',function($product_id,$product_object){
update_post_meta($product_id ,sanitize_text_field($_REQUEST['feild_key']))
}, 10,2)

oss_vahid
تخصص : wordpress developer
@ossvahid 8 ماه پیش آپدیت شد
1

updatepostmeta تابع

update_post_meta('my post id',sanitize_text_field($_REQUEST['option primary key']))

getpostmeta تابع

get_post_meta('my post id','meta key',true)

savepost اکشن

add_action('save_post_product',function($product_id,$product_object){
if ( isset( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( $_REQUEST['_wpnonce'], 'Security-action' ) ) {

update_post_meta($product_id ,sanitize_text_field($_REQUEST['option primary key']))

} else {
wp_die('خطای امنیتی')
}
}, 10,2)

مهدی سلطانی
تخصص : برنامه نویس سایت
@mahdysoltani123456 8 ماه پیش مطرح شد
0

خیلی ممنون کدتون خیلی خوبه ولی به پایگاه دا ده متصل نمیشه من برای فعال یا غیر فعال بودن آن تیک باید تو پایگاه داده ذخیرش کنم


oss_vahid
تخصص : wordpress developer
@ossvahid 8 ماه پیش مطرح شد
0

سلام با همین کدی که بهتون دادم از طریق هوک
save_post_product و تابع update_post_meta میتونید داخل دیتابیس ذخیرش کنید و مقدار رو باید از طریق تابع get_post_meta بگیرید و بالای چک باکس وارد کنید که مثلا وقتی مقدارش فلان بود چک باکس فعال باشه یا نه

الان این خروجی هست گرفتید داخل پنل my Custom tab رو میگم شما اومدی از طریق ی Callback یک چک باکس رو داخل پنلی که ساختی نوشتی درسته؟

add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) { 

  $tabs['new_tab'] = array(
    'title'     => __( 'New Tab', 'woocommerce' ),
    'priority'  => 50,
    'callback'  => 'woo_new_product_tab_content' );

  return $tabs; }

function woo_new_product_tab_content() {
global $product;
    $product_id = $product->get_ID();
  // اینجا شما اومدی ی فیلد ساختی 
$feild___data ="";
$feild___data = get_post_meta($product_id,'feild_key',true);
‌if ($feild___data== "on") {
<input name="feild_key" checked type="checkbox"> 
}else {
<input name="feild_key" type="checkbox"> 
}
 } 

خب اومدیم ی فیلد ساختیم و مقدار رو گرفتیم و گفتیم اگه مقدار on بود فیلم رو checked کن الان ما باید مقدار رو داخل دیتابیس ذخیره کنیم

add_action('save_post_product',function($product_id,$product_object){
update_post_meta($product_id ,sanitize_text_field($_REQUEST['feild_key']))
}, 10,2)

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام