• If you want to use discount coupons in a specific event, or restricted, this code helps you.

    This code creates a product in woocommerce when you create an event. This will make it easier for you to define specific discount codes

    Add it to child-theme/functions.php

    function create_woocommerce_product_from_event($post_id, $post, $update) {
    // Verify that it is an event from The Events Calendar
    if ('tribe_events' !== $post->post_type) {
    return;
    }

    // Avoid infinite loops
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
    return;
    }

    // Extract event data
    $event_title = $post->post_title;
    $event_description = $post->post_content;
    $start_date = get_post_meta($post_id, '_EventStartDate', true);
    $event_price = get_post_meta($post_id, '_EventCost', true); // Assuming the event has a cost.

    // Create or update a product in WooCommerce
    $product_id = get_post_meta($post_id, '_woocommerce_product', true);

    $product_args = array(
    'post_title' => $event_title,
    'post_content' => $event_description,
    'post_status' => 'publish',
    'post_type' => 'product',
    );

    if ($product_id) {
    // Update the product if it already exists
    $product_args['ID'] = $product_id;
    wp_update_post($product_args);
    } else {
    // Create a new product
    $product_id = wp_insert_post($product_args);
    update_post_meta($post_id, '_woocommerce_product', $product_id);
    }

    // Configure product metadata
    update_post_meta($product_id, '_regular_price', $event_price ? $event_price : '0'); // Product price
    update_post_meta($product_id, '_price', $event_price ? $event_price : '0');
    update_post_meta($product_id, '_stock_status', 'instock');
    update_post_meta($product_id, '_virtual', 'no');
    update_post_meta($product_id, '_tribe_event_id', $post_id); // Relationship with the event
    }
    add_action('save_post', 'create_woocommerce_product_from_event', 10, 3);
Viewing 1 replies (of 1 total)
  • Plugin Support Darian

    (@d0153)

    Hi @lafac

    Thank you for sharing this snippet! We truly appreciate your contribution, and it’s great to see solutions like this being shared with the community. I’m sure other users will find it incredibly helpful for their use cases.

    If you have any questions or concerns, please don’t hesitate to reach out—we’re here to help!

Viewing 1 replies (of 1 total)
  • You must be logged in to reply to this topic.