• У меня такая ситуация.

    Есть тема. У неё встроенный функционал инет магазина. у каждого поля есть доп.поле «цена». При создании поста (товара) клиенту удобно очень вписать в это поле цену. Скажем, доп.поле называется et_price

    Есть плагин, позволяющий работать через робокассу. Наш, русский WP-Shop. Работает правильно, нареканий нет. Но вот беда, для него цену надо вписывать в доп.поле price_1. Ну вот такой у него функционал.

    Оператору теперь нужно дважды вписывать цену на товар в разных местах, это вводит его в заблуждение, негодование, недопонимание и тик в правом веке.

    Вопрос. Что и где нужно поправить (дописать), чтобы на момент сохранение поста данные из et_price автоматически вписывались в поле price_1 тоже.

    Спасибо.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Можно добавить фильтр, который при запросе значения price_1 будет возвращать et_price. Примерно так:

    function get_et_price_as_price_1( $null, $object_id, $meta_key, $single ) {
    	remove_filter( 'get_post_metadata', 'get_et_price_as_price_1' );
    
    	if ( 'price_1' != $meta_key )
    		return $null;
    
    	return get_post_meta( $object_id, 'et_price', $single );
    }
    add_filter( 'get_post_metadata', 'get_et_price_as_price_1', 10, 4 );
    • Если используются записи произвольного типа, то в строке get_post_metadata (в обоих местах) вместо post нужно указать название типа.
    • При поверхностном осмотре плагина WP-Shop нашёл поле cost_1 вместо price_1 — при необходимости отредактируйте.
Просмотр 2 ответов — с 1 по 2 (всего 2)

Тема «Сохранение кастом фиелдс» закрыта для новых ответов.