do_action() — создаёт хук (крючок), на месте которого в коде можно выполнить произвольную функцию

Принцип работы do_action() очень похож на принцип работы функции apply_filters() — всё начинается с кода, изменять который пользователю/разработчику сайта не стоит, и в этом коде есть место в котором потенциально будет нужно выполнить какой-то код. И в это место при помощи do_action() ставится хук, который позволяет это осуществить

do_action($tag, $arg = '', $arg2 = '', ... )
$tag
(строка) Название функции, которая будет запущена.
$arg
Любое количество переменных, которые будут переданы в эту функцию.

Функция ничего не возвращает.

Пример использования do_action()

Предположим, что вы пишете свой плагин, и в этом плагине допустим есть место, в котором возможно потребуется выполнение дополнительного кода, скажем так — кому-то может потребуется, а кому-то нет.

В это место кода вы вставляете функцию do_action()

do_action( 'misha_action' );

Теперь, при помощи уже функции add_action() где-либо в другом месте можно запустить привязанную к этому хуку функцию, например в файле functions.php текущей темы, например.

add_action( 'misha_action', 'misha_function_1' );
 
function misha_function_1() {
	echo 'Привет';
}

Также вы можете передавать несколько параметров

Тогда наш код примет вид:

do_action( 'misha_action', $param1, $param2, $param3 );

И

add_action( 'misha_action', 'misha_function_1', 10, 3 ); // 3 - количество параметров
 
function misha_function_1( $param1, $param2, $param3 ) {
 
	if( $param1 == $param3 )
		echo 'Привет';
	else
		echo 'Привет' . $param1 . $param2 . $param3;
 
}

Подробнее — в документации функции add_action().

Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.