Hi,
How can I void a redemption code and/or see a complete list of redemption codes that have been used or not.
Hi,
How can I void a redemption code and/or see a complete list of redemption codes that have been used or not.
Here is a simple shortcode to display all the gift/redemption codes in the database, clicking on the code in the browser will copy it to the clipboard.
function show_coupon_codes()
{
global $wpdb;
ob_start();
$prefix = 's2m_cpc_gift';
$codes = $wpdb->get_results($wpdb->prepare("SELECT option_name, option_value FROM {$wpdb->options} WHERE option_name LIKE %s", $prefix . '%'), ARRAY_A);
if (empty($codes)) {
echo '<p>No coupons found</p>';
return ob_get_clean();
}
echo '<table class="coupon_table">';
$first_coupon = unserialize($codes[0]['option_value'], ['allowed_classes' => false]);
if (!is_array($first_coupon)) {
echo '<p>Invalid coupon data</p>';
return ob_get_clean();
}
$fields = ['code', 'discount', 'percentage_discount', 'flat_discount', 'expires_time', 'active_time', 'dates', 'directive', 'singulars', 'users', 'max_uses', 'is_gift'];
echo '<tr><th>' . implode('</th><th>', array_map('esc_html', $fields)) . '</th></tr>';
foreach ($codes as $index => $code) {
$coupon = $index === 0 ? $first_coupon : unserialize($code['option_value'], ['allowed_classes' => false]);
if (!is_array($coupon)) {
continue;
}
echo '<tr>';
echo "<td onClick=\"navigator.clipboard.writeText('$coupon[code]'); alert('Copied $coupon[code] to clipboard');\">$coupon[code]</td>";
echo "<td>$coupon[discount]</td>";
echo "<td>$coupon[percentage_discount]</td>";
echo "<td>$coupon[flat_discount]</td>";
echo "<td>$coupon[expires_time]</td>";
echo "<td>$coupon[active_time]</td>";
echo "<td>$coupon[dates]</td>";
echo "<td>$coupon[directive]</td>";
echo '<td>' . trim(implode(", ", $coupon['singulars']), ', ') . '</td>';
echo '<td>' . trim(implode(", ", $coupon['users']), ', ') . '</td>';
echo "<td>$coupon[max_uses]</td>";
echo "<td>$coupon[is_gift]</td>";
echo "</tr>";
}
echo '</table>';
return ob_get_clean();
}
add_shortcode('Show_Coupon_Codes', 'Show_Coupon_Codes');