I think that hook fires after the post status has been updated. Try this
add_action( 'pre_post_update', 'intercept_adherence_publishing', 10, 2);
function intercept_adherence_publishing ($post_ID, $data ) {
if (get_post_type($post_ID) !== 'protocol-adherence') {
return;
}
$post = get_post($post_ID);
$adherence_status = $_POST['_adherence_status'];
if ( ( $data['post_status'] === 'publish' ) && ( $post->post_type == 'protocol-adherence' ) && ( $adherence_status !== 'accepted' ) ) {
error_out('Published post ' . $post_ID . ' intercepted. Post remains unpublished due to adherence not being accepted');
wp_die( '<b>Adherence Error: </b>Cannot publish adherence that is not accepted. Please save status in "Pending Review" instead of the publish button if the adherence is not accepted yet.', 'Adherence Publishing Error', [ 'back_link' => true ]);
}
}
Related Posts:
- Set meta field to publish date + 2 weeks
- what is correct way to hook when update post
- Custom plugin: Trying to show saved data on frontend
- Receiving Stripe Webhooks on a wordpress website
- Remove Woocommerce product link
- Check php version before theme activation
- How can I remove “Proudly powered by WordPress” from twentyeleven without modifying footer.php?
- How can I hook into and edit the text of a wp_nav_menu tag?
- WooCommerce: How to display item meta data in email confirmation using woocommerce_order_item_meta_end
- Check if page parent has certain template
- Multiple wp_schedule_event cron jobs in plugin cause multi-execution
- How to remove “out of stock” variation options from size dropdown in woocommerce?
- How to Remove a Filter from the Admin List Table?
- Woocommerce, recognize the loop of related products
- Find variables available at a given hook
- Passing data between two hooks in separate HTML requests
- Is $hook a global variable in WordPress
- Executing `createimagefrompng()` from save_post hook (or equivalent hook)
- Getting my head round WordPress filter
- Delete option value from array using update_option()
- enqueue hover function
- How to set a custom path, for ajax image upload folder in admin?
- When using the_author hook, how can I determine the PHP file that generates each call to `the_author()`?
- How to add a second ‘place order’ button in WooCommerce [closed]
- How to do multiple searches (with logical OR) in WP_Query in hook pre_get_posts?
- wp_loaded hook block script enquequing
- Handling Body class based on Template
- How to load a template-part based on a url wildcard?
- ajax, right way to do it and make it works?
- Sending data from custom inputs in WordPress comment form in the admin notification email
- Reload part of checkout on changed shipping method
- Trying to build simple deposit code that hooks into woocommerce
- Add a product to checkout via form
- Why ajax doesn’t work on certain wordpress hooks and reload the page instead?
- Remove a div from RSS feed
- Is it possible to intercept all ajax requests and get the parameters and the returns?
- user_profile_update_errors hook not executing
- WordPress Gravatar filter is removing my custom attributes
- Return a numerical function value in Customizer controls
- Adding widgets to my plugin page instead of WordPress dashboard
- edit_comment_link is not showing for comment author
- Adding function to Genesis genesis_header [closed]
- Modify custom field input data before creating a new post
- Are all hooks/functions tied to Kses meant for sanitization?
- How to remove woocommerce_breadcrumb() from do_action( ‘woocommerce_before_main_content’ ); [closed]
- Should `wp_login` be used since it’s deprecated?
- Omit custom post type from wp-sitemap.xml based on meta key using wp_sitemaps_posts_query_args
- Password minimum length in personal subscription [closed]
- How to use a custom hook
- Run a code only on theme activation only during first activation
- Theme activation hook in php class
- Theme not calling Jquery properly
- Get access to variable from previous pageview, excluding ajax-calls
- WordPress redirect redirecting too many times or not at all
- How to have different site identity logos on each page on Astra Theme [closed]
- Can not add admin notices from the edit_user_profile_update hook (notices not being displayed)?
- Get user custom field value on function.php
- Comapare get_user_meta value
- Must filter functions receive all arguments passed to them?
- Dynamically Generate Functions and Hooks
- Is there way to toggle the publish date display?
- save_post trigerred twice
- Generate a QR code when creating a new WordPress user
- Replace a single variable with add_filter
- Filter wordpress posts without searching the keywords in the post content
- Variation prices breakdown only for single product page
- Removing “There is no account with that username or email address.” error message in “/wp-login.php?action=lostpassword”
- Display custom field value in woocommerce variable product via jQurey
- Prevent header and footer from loading on specific pages with template or plugin
- Add custom field on admin dashboard comments / reviews
- Contain multiple page templates in one PHP custom template file in WordPress?
- Wp_Schedule_Event every few minutes doesn’t work
- Preserving backslashes in post_content
- Trouble Accessing Gravity Forms API (GFAPI)
- How to edit post meta data before publishing the post it self wordpress?
- Enqueue assets from multiple directories using add_action/do_action
- Adding new divs with custom classes to products on WooCommerce shop page [closed]
- Call a single function on two different methods with hooks
- Discount in the specific product title using keyword ( Woocoommerce )
- get Woocommerce product format json for WP_Query
- How do I get the value of a current user’s custom field?
- Need to forward Data from WooCommerce Webhook sent to same site WordPress REST API custom endpoint
- Hook into all password resets in WordPress and get password before hashing?
- Add class to all meta boxes for a custom post type
- Fatal error when using array_diff() function inside of wp_update_nav_menu hook?
- Clone the “proceed to cart” button and place it above checkout on the cart page, but only appear display size is 320px
- Passing link parameter values to form
- WordPress HTML Helper
- Edit the Publish Widget Options
- How to add custom checkout field in user details mail template
- Cannot modify header information – headers already sent
- For each loop will not append to the_content hook
- Send a custom notification to customer on WooCommerce cancelled order status
- Assign new post author IF another user in custom field on post transition
- Create and publish a new post every Monday, listing the post titles and links to the posts published during the previous week
- understanding wp_next_scheduled
- Add/alter image attribute before render
- Guests comment form – prevent duplicate email addresses
- Woocommerce – add tracking code to another email template
- Is there a hook that I can use when a fatal error occurs?