I am new to PHP. Please help me to achieve the below scenario. I am trying to achieve this from the last 3 days.
I've two categories in my WordPress dashboard named "Available (id:3)" and "Booked (id:4)". In the "available" category a few posts are there.
When I submit a "contact form 7" successfully, I would like to move that post to the "booked" category.
I tried something like below in my functions.php
add_action('wpcf7_mail_sent', function ($cf7) {
function wp_set_post_categories( $post_ID = 0, $post_categories = array(), $append = true ) {
$post_ID = (int) $post_ID;
$post_type = get_post_type( $post_ID );
$post_status = get_post_status( $post_ID );
// If $post_categories isn't already an array, make it one:
$post_categories = (array) $post_categories;
if ( empty( $post_categories ) ) {
if ( 'post' == $post_type && 'auto-draft' != $post_status ) {
$post_categories = array( get_option( 'default_category' ) );
$append = false;
} else {
$post_categories = array(4);
}
} elseif ( 1 == count( $post_categories ) && '' == reset( $post_categories ) ) {
return true;
}
return wp_set_post_terms( $post_ID, $post_categories, 'category', $append );
}
});
Whatever I am writing inside the action its not even executing
add_action('wpcf7_mail_sent', function ($cf7) {
// not working anything, only print_r command working
});
All help will be appreciated. Thank you.