Здравствуйте, я использую хук для награды оплатой за публикацию. Вот пример хука:
add_action('save_post','save_book_meta', 10, 2); function save_book_meta ($post_id, $post, $update, $ad){ if($update || $post->post_status != 'publish') return false; $user_id = $post->post_author; $balance = rcl_get_user_balance($user_id); $balance += 0.3; rcl_update_user_balance($balance,$user_id,'Бонус за публікацію'); }
Возникла проблема, при обновлении записи снова происходит начисление оплаты. То есть автор отредактировал и снова получил оплату.
Как это исправить?
Я думаю это хук сохранения.
Не подскажите может какой-то есть еще хук. Который работает только при публикации записи 1 раз.
То есть админ проверил опубликовал запись - автор получил оплату и все больше за эту запись автор не получает оплату, даже если происходит обновление записи.
Там не все просто с хуками перехода публикаций. Есть 3-й аргумент у хука - он показывает запись обновлена или нет
Подробней в официальной документации к вордпрессу
Вот его и учитывайте - подправив логику php функции
p.s. почему вы в хуке передаете 2 аргумента, а в функции 4-ре? Откуда вы $ad взяли? Не нужно придумывать от себя - читайте документацию к хуку