Здравствуйте, написал функцию оплаты за публикацию поста (произвольна запись вордпресс)
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.
Вам надо уметь читать код иначе у вас так и не будет ничего работать просто из-за того, что вы элементарных вещей не видите.