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!