admin管理员组

文章数量:1124409

In the context of WooCommerce products does anyone know of a way to prevent a user from

  1. Saving Draft

  2. Updating an existing post

  3. Publishing

  4. Submitting for review

IF specific WooCommerce product data fields have not been filled in or any other field for that matter?

It's easy to create MetaBox.io custom fields and set them to be required, but I want to get control over the native Woo and FooEvents fields among other fields such as Post Title, Post Content, Featured Image, etc.

I’ve been playing with a “Save_Post” action hook but having some trouble with it preventing a user from doing any of the 4 actions above. I managed to get this much to show up but because of the "redirect" issue related to the save_post hook, the admin notices and the css show up when I "add a new product" which is annoying. Still, I want to be able to prevent the save until these items are filled. Once I figure this out, I think I might be able to take it further with the Woo and FooEvents fields.

In the context of WooCommerce products does anyone know of a way to prevent a user from

  1. Saving Draft

  2. Updating an existing post

  3. Publishing

  4. Submitting for review

IF specific WooCommerce product data fields have not been filled in or any other field for that matter?

It's easy to create MetaBox.io custom fields and set them to be required, but I want to get control over the native Woo and FooEvents fields among other fields such as Post Title, Post Content, Featured Image, etc.

I’ve been playing with a “Save_Post” action hook but having some trouble with it preventing a user from doing any of the 4 actions above. I managed to get this much to show up but because of the "redirect" issue related to the save_post hook, the admin notices and the css show up when I "add a new product" which is annoying. Still, I want to be able to prevent the save until these items are filled. Once I figure this out, I think I might be able to take it further with the Woo and FooEvents fields.

Share Improve this question edited Mar 4, 2024 at 22:42 Zakir Faizal asked Mar 4, 2024 at 22:39 Zakir FaizalZakir Faizal 12 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

To set required fields in woocommerce when adding a product, you will need to use hooks to enforce validation before the product is saved

// Function to validate required fields before saving product
function custom_validate_required_fields( $product_id, $product ) {
    $errors = array();

    // Check if Post Title is empty
    if ( empty( $product->get_title() ) ) {
        $errors[] = __( 'Product title is required.', 'your-text-domain' );
    }

    // Check if Post Content is empty
    if ( empty( $product->get_description() ) ) {
        $errors[] = __( 'Product content is required.', 'your-text-domain' );
    }

    // Check if Featured Image is empty
    if ( ! has_post_thumbnail( $product_id ) ) {
        $errors[] = __( 'Featured image is required.', 'your-text-domain' );
    }

    // If errors found, display error messages and prevent saving product
    if ( ! empty( $errors ) ) {
        foreach ( $errors as $error ) {
            wc_add_notice( $error, 'error' );
        }
        return false; // Prevent saving product
    }

    return true; // Proceed with saving product
}
add_action( 'woocommerce_process_product_meta', 'custom_validate_required_fields', 10, 2 );

woocommerce_process_product_meta hook fired when a product is being saved. It checks if the required fields Post Title, Post Content, and Featured Image are empty

本文标签: woocommerce offtopicMake Admin Side Fields MandatoryRequired