Disable email verification
add_filter( ‘woocommerce_order_email_verification_required’, ‘__return_false’ );Continue reading
Join 2,000,000+ Professionals who use WPCode to Future-Proof Their Websites!
add_filter( ‘woocommerce_order_email_verification_required’, ‘__return_false’ );Continue reading
function add_custom_order_action($actions) { $actions[‘notify_backorder_available’] = __(‘Notify Backorder Ready’, ‘woocommerce’); return $actions; } add_filter(‘woocommerce_order_actions’, ‘add_custom_order_action’); function process_custom_order_action($order) { $order_id = $order->get_id(); $customer_email = $order->get_billing_email(); $customer_name = $order->get_billing_first_name(); // Email subject and message $subject = “Your Backordered Book is Ready for Collection!”;…Continue reading
add_action(‘woocommerce_cart_calculate_fees’, ‘apply_sister_discount_by_category’, 20, 1); function apply_sister_discount_by_category($cart) { if (is_admin() && !defined(‘DOING_AJAX’)) return; // Ensure it only runs on the front-end $user = wp_get_current_user(); // Only apply discount for users with the “sister” role if (!in_array(‘sister’, (array) $user->roles)) { return; }…Continue reading
if (function_exists(‘acf_add_options_page’)) { acf_add_options_page([ ‘page_title’ => ‘Supplier Settings’, ‘menu_title’ => ‘Suppliers’, ‘menu_slug’ => ‘supplier-settings’, ‘capability’ => ‘manage_options’, ‘redirect’ => false ]); }Continue reading
add_action(‘admin_init’, function () { // Only run for admins on the dashboard if (!current_user_can(‘manage_options’)) return; // Check if we’ve already imported if (get_option(‘supplier_list_imported’)) return; $supplier_data = [ ‘127659’ => ‘1804 Books’, ‘127660’ => ‘Abebooks.com’, ‘127661’ => ‘Africa Book Centre’, ‘127662’…Continue reading
add_filter(‘acf/load_field/name=sln_epn_supplier_id’, function($field) { $field[‘choices’] = []; $supplier_list = get_field(‘supplier_list’, ‘option’); if ($supplier_list) { foreach ($supplier_list as $supplier) { $id = $supplier[‘supplier_id’]; $name = $supplier[‘supplier_name’]; $field[‘choices’][$id] = $name; } } return $field; });Continue reading
add_action(‘save_post_product’, function($post_id, $post) { if (defined(‘DOING_AUTOSAVE’) && DOING_AUTOSAVE) return; if ($post->post_status !== ‘publish’) return; $uncategorized_id = get_option(‘default_product_cat’); $categories = wp_get_post_terms($post_id, ‘product_cat’, [‘fields’ => ‘ids’]); // If only uncategorized is selected or none at all if (empty($categories) || (count($categories) === 1…Continue reading
add_action(‘admin_menu’, function () { add_submenu_page( ‘tools.php’, ‘Fix BACS Subscription’, ‘Fix BACS Sub’, ‘manage_options’, ‘fix-bacs-subscription’, function () { if (isset($_POST[‘fix_bacs_sub_id’]) && is_numeric($_POST[‘fix_bacs_sub_id’])) { $sub_id = (int) $_POST[‘fix_bacs_sub_id’]; // Update meta fields update_post_meta($sub_id, ‘_payment_method’, ‘bacs’); update_post_meta($sub_id, ‘_payment_method_title’, ‘Direct Bank Transfer’); update_post_meta($sub_id, ‘_requires_manual_renewal’,…Continue reading
add_filter(‘user_has_cap’, function($allcaps, $cap, $args, $user) { if (!in_array(‘shop_manager’, $user->roles)) { return $allcaps; } $target_user_id = $args[0] ?? null; if (!$target_user_id) { return $allcaps; } $target_user = get_userdata($target_user_id); if (!$target_user) { return $allcaps; } // Only allow actions on specific roles…Continue reading
add_filter(‘editable_roles’, function($roles) { if (current_user_can(‘shop_manager’)) { if (!isset($roles[‘trade’]) && isset($GLOBALS[‘wp_roles’]->roles[‘trade’])) { $roles[‘trade’] = $GLOBALS[‘wp_roles’]->roles[‘trade’]; } if (!isset($roles[‘branch’]) && isset($GLOBALS[‘wp_roles’]->roles[‘branch’])) { $roles[‘branch’] = $GLOBALS[‘wp_roles’]->roles[‘branch’]; } if (!isset($roles[‘sister’]) && isset($GLOBALS[‘wp_roles’]->roles[‘sister’])) { $roles[‘sister’] = $GLOBALS[‘wp_roles’]->roles[‘sister’]; } if (!isset($roles[‘fulltimer’]) && isset($GLOBALS[‘wp_roles’]->roles[‘fulltimer’])) { $roles[‘fulltimer’] =…Continue reading