Track Who Created a WooCommerce Coupon

WooCommerce does not log the user who created a coupon by default. To enable this, you can add a small snippet to store and display the creator info. Follow these steps:

Step 1: Edit your theme’s functions.php file or build a custom plugin.

Step 2: Add the following code:

// Track who created the coupon
function save_coupon_creator($post_id) {
    $coupon = get_post($post_id);
    $user_id = get_current_user_id();
    update_post_meta($post_id, 'coupon_creator', $user_id);
}
add_action('woocommerce_new_coupon', 'save_coupon_creator');

// Show creator info on the coupon edit page
function display_coupon_creator($coupon) {
    $creator_id = get_post_meta($coupon->get_id(), 'coupon_creator', true);
    if ($creator_id) {
        $creator_name = get_the_author_meta('display_name', $creator_id);
        echo 'Coupon Creator: ' . $creator_name . ''; 
    } 
} 
add_action('woocommerce_coupon_options_usage', 'display_coupon_creator');

Step 3: Save and apply the changes.

This will track and display the coupon creator using custom meta. Want to show this in the coupon list table too? Here’s how:

Step 1: Add this to your functions.php:

// Add column for coupon creator
function add_coupon_creator_column($columns) {
    $columns['coupon_creator'] = __('Coupon Creator', 'your-text-domain');
    return $columns;
}
add_filter('manage_edit-shop_coupon_columns', 'add_coupon_creator_column');

// Show creator in table
function display_coupon_creator_column($column, $coupon_id) {
    if ($column === 'coupon_creator') {
        $creator_id = get_post_meta($coupon_id, 'coupon_creator', true);
        echo $creator_id ? get_the_author_meta('display_name', $creator_id) : '-';
    }
}
add_action('manage_shop_coupon_posts_custom_column', 'display_coupon_creator_column', 10, 2);

// Sortable column
function make_coupon_creator_column_sortable($columns) {
    $columns['coupon_creator'] = 'coupon_creator';
    return $columns;
}
add_filter('manage_edit-shop_coupon_sortable_columns', 'make_coupon_creator_column_sortable');

// Sorting logic
function modify_coupon_creator_column_sorting($query) {
    if (is_admin() && $query->is_main_query() && $query->get('orderby') === 'coupon_creator') {
        $query->set('meta_key', 'coupon_creator');
        $query->set('orderby', 'meta_value_num');
    }
}
add_action('pre_get_posts', 'modify_coupon_creator_column_sorting');

This lets you view and sort WooCommerce coupons by their creator in the admin table. A great way to improve internal tracking and responsibility!

 

Leave a Comment

Your email address will not be published. Required fields are marked *

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.