Hello!
Yes you are right, you have to wrap your ouput inside an if()
statement. Here is an example to use the same function for 2 differents buttons:
add_action('wp_ajax_acfe/fields/button', 'my_acf_button_ajax');
add_action('wp_ajax_nopriv_acfe/fields/button', 'my_acf_button_ajax');
function my_acf_button_ajax(){
/**
* @bool/string $_POST['post_id'] Current post ID
* @string $_POST['field_key'] Button's field key
* @string $_POST['field_name'] Button's field name
*/
if($_POST['field_name'] === 'my_field'){
echo 'This is the Ajax for my_field!';
die;
}
if($_POST['field_name'] === 'my_second_field'){
echo 'This is the Ajax for my_second_field!';
die;
}
}
But you can also split it with 2 different functions:
add_action('wp_ajax_acfe/fields/button', 'my_acf_button_ajax');
add_action('wp_ajax_nopriv_acfe/fields/button', 'my_acf_button_ajax');
function my_acf_button_ajax(){
if($_POST['field_name'] === 'my_field'){
echo 'This is the Ajax for my_field!';
die;
}
}
add_action('wp_ajax_acfe/fields/button', 'my_acf_second_button_ajax');
add_action('wp_ajax_nopriv_acfe/fields/button', 'my_acf_second_button_ajax');
function my_acf_second_button_ajax(){
if($_POST['field_name'] === 'my_second_field'){
echo 'This is the Ajax for my_second_field!';
die;
}
}
But you are right, it would be cool to just use one nomative hook and target a specific field, like: add_action('acfe/fields/button/name=my_field', 'my_function')
.
I add it as feature request in the Trello board ?? https://trello.com/b/QEgpU7CL/acf-extended
Regards.