Intereting Posts
ajax возвращает -1 в многодоменном субдомене $ post-> ID и the_id () всегда возвращают неправильное значение Постоянное изменение таксономии В двадцать шестнадцать лет покажите слайдер только на главной странице Как сделать область виджетов на месте комментария Удаление дубликатов вложений Как написать текст в php-файл между существующим php-кодом Как массовое обновление настраиваемых полей для сообщений более 20 тыс. Как я могу использовать wp_insert_comment для записи комментария при редактировании сообщения? Добавить классы Bootstrap для последних сообщений Widget $ wpdb-> get_row возвращает имя столбца вместо значения столбца wp db import – получение ошибки: отсутствует файл импорта ACF / Использование внешних ресурсов для отображения изображений Установка WordPress для нескольких доменов с nginx и php-fpm Функция Ajax в #publish сохраняет только как черновик – как сделать публикацию?

Формирование валюты (цены) на пользовательских полях

Мне нужно отформатировать настраиваемое поле в области admin (post edit) в виде валюты, eq: 12.000,00, при этом пользователь вводит только цифры, и. автоматический. Я искал аркан, без всякого успеха. Кто-нибудь? спасибо

Код, который я пытаюсь использовать для enqueue script в admin, – это

function enqueue_admin() { wp_enqueue_script( 'jquery' ); //adding Jquery to admin. Not sure if is needed or already there wp_register_script( 'autonum', THEME_DIR . '/js/vendor/autoNumeric.js', array( 'jquery' ), '1', false ); //this is autoNumeric for currency format wp_enqueue_script( 'autonum' ); } add_action( 'admin_enqueue_scripts', 'enqueue_admin' ); 

Кроме того, не уверен, что мне нужно изменить все $ на JQuery в autoNumeric.js, из-за совместимости с wordpress

если вы хотите обработать поле после отправки, функция number_format php – это то, что вам нужно:

 $price = number_format( $number, 2, '.', ',' ); 

но если вы хотите изменить способ отображения числа при вводе , попробуйте jQuery autoNumeric

Autonumeric является плагином jQuery и выглядит так, что вам не нужно менять $ .

Я думаю, проблема в этой строке:

 wp_register_script( 'autonum', THEME_DIR . '/js/vendor/autoNumeric.js', array( 'jquery' ), '1', false ); //this is autoNumeric for currency format 

Проблема в том, что я не уверен, откуда THEME_DIR . Эта константа не определена в моей тестовой установке. Я подозреваю, что у вас есть сломанный URL для этого скрипта.

Во всяком случае, даже если THEME_DIR определен, и я просто пропустил его, вместо этой константы вы, вероятно, должны использовать get_template_directory_uri() если это автономная или родительская тема или get_stylesheet_directory_uri() если это get_stylesheet_directory_uri() тема.

Я думаю, лучше, что вы добавляете с плагином мета-поле для своего ценового поля. Легко фильтровать и форматировать выход. Болезнь внутри базы данных, и ее легче поддерживать или добавлять значения внутри поля для авторов. Для чтения выведите значение, вы также можете использовать функции по умолчанию для настраиваемого типа сообщения. Он дает много руководств и ответов на WPSE по этой теме.

Для формата с php это легко, если вы используете money_format() .

  • Пример: echo money_format('$%i', 3.4); // echos '$3.40' echo money_format('$%i', 3.4); // echos '$3.40'

Я думаю, что эта функция правильная. Функция использует locale var из установки WordPress и работает с различными типами и языками. Формат с функциями php по умолчанию не используется в течение более длительного времени, это сложный способ форматирования в этом контексте.

Если вам нравится способ в javascript , то посмотрите на этот поток WPSE , очень полезно. Но я думаю, что php-путь быстрый и легкий для вывода внутри настраиваемого поля, например, в мета-поле.