Skip to content

Instantly share code, notes, and snippets.

@SirDarcanos
SirDarcanos / functions.php
Last active October 30, 2023 07:25
Remove Russia from WooCommerce checkout fields.
<?php
add_filter( 'woocommerce_countries_allowed_countries', 'wc_ban_russia' );
function wc_ban_russia( $countries ) {
if ( isset( $countries['RU'] ) ) {
unset( $countries['RU'] );
}
return $countries;
}
@SirDarcanos
SirDarcanos / functions.php
Created October 27, 2023 08:12
Add Email Filter Field on WooCommerce > Orders
<?php
function add_email_filter_to_orders() {
global $typenow;
if ('shop_order' === $typenow) {
echo '<input type="text" name="filter_email" placeholder="Email Address..." value="' . (isset($_GET['filter_email']) ? esc_attr($_GET['filter_email']) : '') . '">';
}
}
add_action('restrict_manage_posts', 'add_email_filter_to_orders', 99);
@SirDarcanos
SirDarcanos / functions.php
Last active October 27, 2023 08:15
Show Customer's Order by Email
<?php
function show_specific_customer_orders($query) {
global $pagenow, $typenow;
if (!is_admin() || !$query->is_main_query() || 'shop_order' !== $typenow || 'edit.php' !== $pagenow || !isset($_GET['filter_email']) || empty($_GET['filter_email'])) {
return;
}
$email_to_filter = sanitize_email($_GET['filter_email']);
$customer_orders = wc_get_orders(array('limit' => -1, 'customer' => $email_to_filter, 'return' => 'ids'));
@SirDarcanos
SirDarcanos / functions.php
Created October 30, 2023 04:38
Add Email Filter
<?php
// Add the input field
function add_email_filter() {
global $typenow;
if ( 'shop_order' == $typenow ) {
$current_emails = isset( $_GET['filter_emails'] ) ? sanitize_text_field( $_GET['filter_emails'] ) : '';
echo '<input type="text" name="filter_emails" placeholder="Hide orders by email" value="' . esc_attr( $current_emails ) . '">';
}
}
@SirDarcanos
SirDarcanos / functions.php
Created October 30, 2023 04:39
Hide orders by email
<?php
// Filter orders based on the entered email
function filter_orders_by_emails( $query ) {
global $typenow, $wpdb;
if ( 'shop_order' == $typenow && isset( $_GET['filter_emails'] ) && !empty( $_GET['filter_emails'] ) ) {
$emails = array_map('sanitize_email', explode(',', $_GET['filter_emails']));
$order_ids = $wpdb->get_col( "SELECT pm.post_id FROM {$wpdb->postmeta} pm WHERE pm.meta_key = '_billing_email' AND pm.meta_value IN ('" . join("','", $emails) . "')" );
<?php
// Predefined email address
define('HIDDEN_EMAIL_ORDERS', '[email protected]');
// Add the checkbox
function add_email_filter_checkbox() {
global $typenow;
if ( 'shop_order' == $typenow ) {
$is_checked = isset( $_GET['hide_specific_email'] ) ? 'checked' : '';
@SirDarcanos
SirDarcanos / functions.php
Created October 30, 2023 05:21
Change the Add to Cart text in WooCommerce
<?php
// Change add to cart text on single product page
add_filter( 'woocommerce_product_single_add_to_cart_text', 'change_add_to_cart_text' );
function change_add_to_cart_text() {
return 'Add to Bag';
}
// Change add to cart text on product archives page
add_filter( 'woocommerce_product_add_to_cart_text', 'change_add_to_cart_text_archives' );
function change_add_to_cart_text_archives() {
@SirDarcanos
SirDarcanos / functions.php
Created October 30, 2023 10:31
Change the “Add to Cart” text on the single product page
<?php
// Change add to cart text on single product page
add_filter( 'woocommerce_product_single_add_to_cart_text', 'change_add_to_cart_text' );
function change_add_to_cart_text() {
return 'Add to Bag';
}
@SirDarcanos
SirDarcanos / functions.php
Created November 7, 2023 06:40
How to Make Your Edit Order Screen More Efficient
<?php
add_action( 'woocommerce_after_order_itemmeta', 'admin_order_add_product_info_and_link', 10, 3 );
function admin_order_add_product_info_and_link( $item_id, $item, $_product ) {
if ( ! $_product ) return;
$product_link = get_permalink( $_product->get_id() );
$attributes_to_display = ['slug_1', 'slug_2', 'slug_3']; // Specify the attribute slugs you want to display
$target_product = $_product;
if ($_product->is_type('variation')) {
@SirDarcanos
SirDarcanos / functions.php
Created November 7, 2023 07:33
How to Disable GTIN Requirements for Non-Eligible WooCommerce Products
<?php
add_filter( 'woocommerce_structured_data_product', 'add_identifier_exists_false' );
function add_identifier_exists_false( $markup ) {
$markup['identifier_exists'] = 'no';
return $markup;
}