Здравствуйте, написал функцию оплаты за публикацию поста (произвольна запись вордпресс)
add_action('publish_post','my_edit_user_post'); function my_edit_user_post ($ad){ rcl_update_user_balance(10,$user_id,'Бонус за публікацію'); }
Возникает ошибка не работает, в чем может быть проблема? хук вроде тот, дальше делал по примеру
lev-best97@ukr.net сказал(а)
А если хук верный
В одной из прошлых тем я вам
как проверить тот это хук или нет. Извините - но нянчиться, в рамках обучения php и вордпресса - вы попали не на тот ресурс. Найдите ментора, заплатите за обучение и задавайте ему вопросы.
описана на сайте - но снова вы не хотите поиском по сайту воспользоваться и найти её. Посмотреть что там написано. А вы юзеру просто затрете баланс и все. Вы же не получаете значение, а тупо в лоб обновляете, затирая его текущий баланс.
И
что id юзера не определен.
Внимательнее пожалуйста.
1. На сайте описание нашел сделал по примеру
2. ID юзера определяю (указал автор записи)
3. В тех поддержку писал, сказали хук такой. Обращайтесь к создателю дополнения - который реализует данный хук.
вот пример кода - не работает -
add_action('publish_post','my_edit_user_post'); function my_edit_user_post ($ad){ $user_id = $post->post_author; $balance = rcl_get_user_balance($user_id); $balance = 100; rcl_update_user_balance($balance,$user_id,'Изменение баланса'); }
lev-best97@ukr.net сказал(а)
ID юзера определяю (указал автор записи)
ну а теперь $post неопределен
lev-best97@ukr.net сказал(а)
Обращайтесь к создателю дополнения - который реализует данный хук.
что еще за техподдержка? хук, который вы пытаетесь использовать вообще от ядра ВП, а не дополнения.
А вообще в коде кавардак.
add_action('publish_post','my_edit_user_post', 10, 2); function my_edit_user_post ($post_id, $post){ $user_id = $post->post_author; $balance = rcl_get_user_balance($user_id); $balance += 100; rcl_update_user_balance($balance,$user_id,'Изменение баланса'); }
Здравствуйте, нашел вариант - вот так сделал,
add_action('save_post','save_book_meta', 10, 2); function save_book_meta ($post_id, $post, $ad){ $user_id = $post->post_author; $balance = rcl_get_user_balance($user_id); $balance += 0.5; rcl_update_user_balance($balance,$user_id,'Бонус за публікацію'); }
только мне необходимо чтобы баланс пополнялся после опубликования записи. А сейчас когда пользователь только отправляет запись на рассмотрение сразу ему приходит сума.
То есть хук срабатывает когда у записи статус "pending" а необходимо платить когда запись в статусе "publish". В интернете не могу найти похожий хук. Как и обещал последняя просьба.
пробовал такой вариант, но тоже не работает
add_action( 'transition_post_status', 'wpse120996_post_status_publish', 10, 3 ); function wpse120996_post_status_publish( $new_status, $old_status, $post_ID ) { if ( $new_status == 'pending' && $old_status == 'publish' ) { $user_id = $post->post_author; $balance = rcl_get_user_balance($user_id); $balance += 0.5; rcl_update_user_balance($balance,$user_id,'Бонус за публікацію'); } }
ну если у вас хук save_post отрабатывает, то его и используйте, только получайте через него не два, а три параметра, третий - метка обновления поста, если есть, значит пост обновлен, если нет - значит только что опубликован, ну и проверяйте статус поста.
add_action('save_post','save_book_meta', 10, 3); function save_book_meta ($post_id, $post, $update){ if($update || $post->post_status != 'publish') return false; //а дальше свой код... }
Здравствуйте, попробовал не работает, не добавляет деньги вообще ни в каком случае
add_action('save_post','save_book_meta', 10, 3); 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.5; rcl_update_user_balance($balance,$user_id,'Бонус за публікацію'); }
lev-best97@ukr.net сказал(а)
добавил $ad
Зачем вы вообще это добавляете?
Не работает потому что в коде стоит проверка на обновление через переменную $update, видимо у вас именно обновление записи и идет, потому код и не отрабатывает, отработает, когда запись будет именно публиковаться со статусом publish.
Вам надо уметь читать код иначе у вас так и не будет ничего работать просто из-за того, что вы элементарных вещей не видите.