Мне нужно отформатировать настраиваемое поле в области 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-путь быстрый и легкий для вывода внутри настраиваемого поля, например, в мета-поле.