DariushGreat

چگونه یک مقدار از چند مقدار متای چک باکس رو نمایش بدم؟

14 پست در این موضوع قرار دارد

سلام

من با کمک افزونه چند متای چک‌باکس برای کاربری تعریف کردم. از کد زیر برای نمایش در پوسته بهره می‌گیرم:

echo get_the_author_meta('my_field', $author_id);

ولی هنگامی که می‌خوام در پوسته نشونش بدم به شکل آرایه‌ای میاره. یعنی اینجوری

مقدار 1| مقدار 2| مقدار 3|

مشکل من اینه که می‌خوام با نمایش هر مقدار یک چیزی توی بخش کاربری رخ بده. برای نمونه کاربر هر سه چک‌باکس رو تیک زده و هر سه مقدار در آرایه متا هست. با وجود " مقدار 1 " اون رو جداگانه با یک جمله نمایش بده. با وجود " مقدار 2 " باز هم جداگانه و با یک جمله نشون بده و... . به عبارتی به شکل زیر:
 

نقل قول

 

* مقدار 1

{ جمله‌ای که با وجود مقدار 1 نمایش داده می‌شود }

* مقدار 2

{ جمله‌ای که با وجود مقدار 2 نمایش داده می‌شود }

* مقدار 3

{ جمله‌ای که با وجود مقدار 3 نمایش داده می‌شود }

 

چی کار باید کنم؟

ممنون برای کمک

0

به اشتراک گذاری این پست


لینک به پست
$field = get_user_meta($author_id, 'my_field');
$field = $field[0];
if(!empty($field[1])) { 
//جمله اول
}
if(!empty($field[2])) { 
//جمله دوم
}
if(!empty($field[3])) { 
//جمله سوم
}

 

1

به اشتراک گذاری این پست


لینک به پست
در 4 ساعت قبل، imanfakhar گفته است :

$field = get_user_meta($author_id, 'my_field');
$field = $field[0];
if(!empty($field[1])) { 
//جمله اول
}
if(!empty($field[2])) { 
//جمله دوم
}
if(!empty($field[3])) { 
//جمله سوم
}

 

سلام

ممنون استاد فخار

این کد در هر حال چه کاربر تیک زده باشه و چه نزده باشه جمله‌ها رو نمایش می‌ده.

0

به اشتراک گذاری این پست


لینک به پست

فیلدها چک باکسند؟

اگر فیلدهاتون چک باکسند مشکل به اکشن فرمتون مربوط می شه 

اکشن ذخیره تون رو بگذارید اینجا

در ضمن اینکار نیاز چندانی به افزونه هم نداره علت استفاده از افزونه و اسم افزونه تون رو هم بفرمایید.

1

به اشتراک گذاری این پست


لینک به پست

فیلدها چک باکس هستن

نام افزونه WP User Frontend

به خاطر این که بتونم فیلدمتا برای کاربر به همراه امکان ویرایش از Frontend رو فراهم کنم. به عبارتی نمی‌خوام کاربر بره به backend.

0

به اشتراک گذاری این پست


لینک به پست

 

در 19 ساعت قبل، imanfakhar گفته است :

فیلدها چک باکسند؟

اگر فیلدهاتون چک باکسند مشکل به اکشن فرمتون مربوط می شه 

اکشن ذخیره تون رو بگذارید اینجا

در ضمن اینکار نیاز چندانی به افزونه هم نداره علت استفاده از افزونه و اسم افزونه تون رو هم بفرمایید.

از دستور foreach هم به همراه شرط‌هایی که گفتید رو هم گذاشتم خالی میاره.

کلافه‌م کرده :(

0

به اشتراک گذاری این پست


لینک به پست
در 23 دقیقه قبل، DariushGreat گفته است :

اکشن ذخیره تون رو بگذارید اینجا

اگه کاری که تو پاسختون خواسته شده رو انجام بدید ممکنه زودتر به نتیجه برسید

1

به اشتراک گذاری این پست


لینک به پست
در 1 ساعت قبل، imanfakhar گفته است :

اگه کاری که تو پاسختون خواسته شده رو انجام بدید ممکنه زودتر به نتیجه برسید

اکشن مورد نظر رو از کجا باید برداشت کنم؟

ممنون

0

به اشتراک گذاری این پست


لینک به پست

گر خودتون ننوشتید حتما افزونه تون نوشتتش 

نشانی آنلاین فرمتون رو بگذارید

 

1

به اشتراک گذاری این پست


لینک به پست
در 2 ساعت قبل، imanfakhar گفته است :

گر خودتون ننوشتید حتما افزونه تون نوشتتش 

نشانی آنلاین فرمتون رو بگذارید

 

فرم مربوط به ویرایش کاربری هست

اطلاعات لازم رو براتون پیغام کردم

0

به اشتراک گذاری این پست


لینک به پست

پیغامی به من نرسیده 

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

1

به اشتراک گذاری این پست


لینک به پست
در 6 ساعت قبل، imanfakhar گفته است :

پیغامی به من نرسیده 

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

سلام

بفرمایید:

<label>
  <input type="checkbox" class="wpuf_work_field_1153" name="work_field[]" value="بازرگانی" checked="checked" />
  بازرگانی                    </label>

<label>
  <input type="checkbox" class="wpuf_work_field_1153" name="work_field[]" value="بهره‌بردار" checked="checked" />
  بهره‌بردار                    </label>

<label>
  <input type="checkbox" class="wpuf_work_field_1153" name="work_field[]" value="پیمانکار" />
  پیمانکار                    </label>

<label>
  <input type="checkbox" class="wpuf_work_field_1153" name="work_field[]" value="تشکل‌ها" />
  تشکل‌ها                    </label>

<label>
  <input type="checkbox" class="wpuf_work_field_1153" name="work_field[]" value="تولیدکنندگان" />
  تولیدکنندگان                    </label>

<label>
  <input type="checkbox" class="wpuf_work_field_1153" name="work_field[]" value="دانش‌بنیان" />
  دانش‌بنیان                    </label>

<label>
  <input type="checkbox" class="wpuf_work_field_1153" name="work_field[]" value="شرکت‌های خارجی" />
  شرکت‌های خارجی                    </label>

<label>
  <input type="checkbox" class="wpuf_work_field_1153" name="work_field[]" value="فروشگاه‌ها" />
  فروشگاه‌ها                    </label>

<label>
  <input type="checkbox" class="wpuf_work_field_1153" name="work_field[]" value="کارفرما" />
  کارفرما                    </label>

<label>
  <input type="checkbox" class="wpuf_work_field_1153" name="work_field[]" value="مشاور" />
  مشاور                    </label>

<label>
  <input type="checkbox" class="wpuf_work_field_1153" name="work_field[]" value="دیگر شرکت‌ها" />
  دیگر شرکت‌ها                    </label>

 

0

به اشتراک گذاری این پست


لینک به پست

سلام دوستان

بالاخره پس از کلی تلاش راه حل مشکل رو پیدا کردم :)

$user_meta = get_the_author_meta('my_field', $author_id);
$my_array = explode('| ', $user_meta);

if (is_array($my_array)) {
	if($my_array[0]){
		echo 'جمله 1<br />';
	}
	if($my_array[1]) {
		echo 'جمله 2<br />';
	}
	if($my_array[2]) {
		echo 'جمله 3';
	}

کدها گویا هستن. تابع explode در php که کارش تبدیل رشته نوشتاری به آرایه هست و شروط وجود آرایه و درایه های اون :D

امیدوارم به کار شما هم بیاد ;)

0

به اشتراک گذاری این پست


لینک به پست

اصلاحیه

کدی که در نوشته پیشین نوشتم یک نقص داره و اونم اینه که اگر به هر روشی درایه‌های آرایه جابجا بشن، شرط‌ها محتویات اشتباه نشون می‌دن!

کد اصلاحیه:

$user_meta = get_the_author_meta('my_field', $author_id);
$my_array = explode('| ', $user_meta);

if (is_array($my_array)) {
	if(in_array('واژه 1', $my_array)){
		echo 'جمله 1<br />';
	}
	if(in_array('واژه 2', $my_array)) {
		echo 'جمله 2<br />';
	}
	if(in_array('واژه 3', $my_array)) {
		echo 'جمله 3';
	}

برتری این کد در اینه که اگر درایه‌ها جابجا بشن باز هم خروجی درست نمایش داده خواهد شد.

فعلا کامل‌ترین کدی که دست پیدا کردم همینه؛ اگر بتونم به کدهای بهینه‌تری برسم خواهم گذاشت.

ویرایش شده در توسط DariushGreat
0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط DariushGreat
      سلام
      من با كمك واكر كاري كردم كه تكسونومي دلخواهم رو با wp_list_categories به گونه چك‌باكس نمايش بدم.
      كد واكر تبديل كننده فهرست دسته‌بندي به چك‌باكس دسته بندي:
      class Walker_Category_Checklist extends Walker { public $tree_type = 'category'; public $db_fields = array ('parent' => 'parent', 'id' => 'term_id'); //TODO: decouple this public function start_lvl( &$output, $depth = 0, $args = array() ) { $indent = str_repeat("\t", $depth); $output .= "$indent<ul class='children'>\n"; } public function end_lvl( &$output, $depth = 0, $args = array() ) { $indent = str_repeat("\t", $depth); $output .= "$indent</ul>\n"; } public function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) { if ( empty( $args['taxonomy'] ) ) { $taxonomy = 'category'; } else { $taxonomy = $args['taxonomy']; } if ( $taxonomy == 'category' ) { $name = 'post_category'; } else { $name = 'tax_input[' . $taxonomy . ']'; } $args['popular_cats'] = empty( $args['popular_cats'] ) ? array() : $args['popular_cats']; $class = in_array( $category->term_id, $args['popular_cats'] ) ? ' class="popular-category"' : ''; $args['selected_cats'] = empty( $args['selected_cats'] ) ? array() : $args['selected_cats']; if ( ! empty( $args['list_only'] ) ) { $aria_cheched = 'false'; $inner_class = 'category'; if ( in_array( $category->term_id, $args['selected_cats'] ) ) { $inner_class .= ' selected'; $aria_cheched = 'true'; } /** This filter is documented in wp-includes/category-template.php */ $output .= "\n" . '<li' . $class . '>' . '<div class="' . $inner_class . '" data-term-id=' . $category->term_id . ' tabindex="0" role="checkbox" aria-checked="' . $aria_cheched . '">' . esc_html( apply_filters( 'the_category', $category->name ) ) . '</div>'; } else { /** This filter is documented in wp-includes/category-template.php */ $output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" . '<label class="selectit"><input value="' . $category->term_id . '" type="checkbox" name="'.$name.'[]" id="in-'.$taxonomy.'-' . $category->term_id . '"' . checked( in_array( $category->term_id, $args['selected_cats'] ), true, false ) . disabled( empty( $args['disabled'] ), false, false ) . ' /> ' . esc_html( apply_filters( 'the_category', $category->name ) ) . '</label>'; } } public function end_el( &$output, $category, $depth = 0, $args = array() ) { $output .= "</li>\n"; } } و كدي كه باهاش نمايش مي‌دم:
      $args = array( 'taxonomy' => 'brands', 'walker' => new Walker_Category_Checklist, ); wp_list_categories( $args ); و اما كد جاوايي كه كارش اينه كه با وارسي نشاني كنوني، مي‌تونه اون رو به نشاني دلخواه تغيير بده:
      URL = document.URL; if(URL.indexOf('نشاني 1') != -1) URL = URL.replace('نشاني 1','نشاني 2'); else URL = URL.replace('نشاني 2','نشاني 1'); window.location = URL; حالا من چگونه اينا رو با هم مچ كنم تا هنگامي كه روي يك چك‌باكس ترم كليك كردم، اسلاگ اون چك باكس رو به نشاني اضافه كنه؟
       
      سپاس براي راهنمايي و كمك