امیر حسین
4 سال پیش توسط امیر حسین مطرح شد
0 پاسخ

ذخیره dynamic custom field

من دارم یه پلاگین وردپرس مینویسم برای پیگیری وضعیت سفارش مشتریان، تو این پلاگین یه بخش هست که برای ذخیره مراحل سفارش هست به این شکل که مدیر میاد و مراحل انجام سفارش رو ثبت میکنه. برای این بخش از یه کد js استفاده کردم که بعد از فشردن یه دکمه یه custom field ایجاد بکنه، که این فیلد ها میتونن تعداد متفاوتی داشته باشن از یکی تا هرچند تا که لازم باشه.

ولی با ذخیره کردنشون مشکل دارم. تو حالت عادی برنامه نویسی php (خارج از بحث پلاگین نویسی وردپرس) با یه دستور for میشه ذخیرشون کرد ولی وقتی از اون روش تو پلاگینم استفاده کردم جواب نداد و ذخیره نشد.

کد های استفاده شده تو بخش نمایش و ایجاد فیلد ها :

<section>
            <div id="project_levels_div">
                 <span class="button button-primary" id="addLevelField" style="margin: 22px"
                       onclick="addField()">افزودن</span>
            </div>
        </section>

        <script>
            function addField() {
                var levelCount = $('.project_levels').length;
                var x = levelCount + 1;
                var input = '' +
                    '<p>' +
                    '<label for="employer_name' + x + '">مرحله ' + x + ' :</label>' +
                    '<input type="text" class="project_levels" name="project_level[' + x + ']" id="project_level' + x + '" style="display: block; margin: 10px 20px;">' +
                    '</p>';
                $('#project_levels_div').append(input);
            }
        </script>

کد های مربوط به بخش ذخیره سازی :

add_action( 'save_post', 'save_post_project_data_meta' );

        function save_post_project_data_meta( $id ) {
            if ( ! empty( $_POST['project_level'] ) && is_array( $_POST['project_level'] ) ) {
                $count = count( $_POST['project_level'] );
                for ( $i = 0; $i < $count; $i ++ ) {
                    update_post_meta( $id, 'project_level'.$i, strip_tags( $_POST['project_level'][$i] ) );
                }
            }
        }

@hesammousavi


ثبت پرسش جدید

به همدیگه کمک کنیم

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

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

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