@Fruit_Fellow

Разбор функции add_filter() в wordpress?

Есть вот такая функция:
function insert_order(){
        global $wpdb;
        if(is_admin()): $order_status = 4;
        else:  $order_status = $this->order_status;
        endif;
        $args = apply_filters('evpl_pre_insert_order', array(
            'user_data' => $this->user_data,
            'order_price' => $this->cart->price,
            'place_amount' => $this->cart->amount,
            'order_details' => serialize($this->details),
            'order_date' => current_time('mysql'),
            'order_status' => $order_status,
            'order_hash' => md5(current_time('mysql'))
        ));
        $result = $wpdb->insert(
            WP_PREFIX.'evpl_orders',
            $args
        );
        if(!$result)
            return false;
        return $wpdb->insert_id;
    }

А также
$percent = get_post_meta( $post_id, 'collection', true );

Данная строчка делает выборку в бд из таблицы collection
Нужно вставить $percent в строку в функции, чтобы получилось вот так: 'order_price' => $this->cart->price*$percent просто так вставить не получается выдаёт ошибку, нужно через функцию add_filter(), но как это сделать не пойму, перелазил весь интернет, писал много куда, никто так и не помог.
  • Вопрос задан
  • 325 просмотров
Пригласить эксперта
Ответы на вопрос 1
addfilter('evpl_pre_insert_order', 'my_evpl_pre_insert_order');
function my_evpl_pre_insert_order($data){
    $post = get_post();
    $id = $post->ID;
    $percent = get_post_meta( $id, 'collection', true );
    $data['order_price'] = $data['order_price'] * $percent;

return $data;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы