Skip to content

Instantly share code, notes, and snippets.

View saranyagokula's full-sized avatar

saranya saranyagokula

View GitHub Profile
@saranyagokula
saranyagokula / export-order-statuses-to-google-sheets
Created April 10, 2024 12:51
Fetching Completed order status to Google Sheets
// Function to handle HTTP POST requests
function doPost(e) {
if (e && e.postData) {
// Parse the payload content
var myData = JSON.parse(e.postData.contents);
// Check if the order status indicates a completed payment
if (myData.status === 'completed') {
// Extract additional order details
var order_number = myData.number;
@saranyagokula
saranyagokula / hide-shipping-methods.php
Created April 5, 2024 16:22
hide shipping methods for guest users and subscribers
add_filter( 'woocommerce_package_rates', 'ts_hide_specific_shipping_method', 10, 2 );
function ts_hide_specific_shipping_method( $rates, $package ) {
// Define the shipping rate IDs to hide for guests
$targeted_rate_ids_guest = array(
'flat_rate:4', // Flat rate shipping method for guests
// Free shipping method for guests
);
// Define the shipping rate IDs to hide for subscribers
@saranyagokula
saranyagokula / min-max-product-quantity-rule.php
Created April 5, 2024 04:49
min max product quantity rule
function wc_qty_add_product_field() {
echo '<div class="options_group">';
woocommerce_wp_text_input(
array(
'id' => '_wc_min_qty_product',
'label' => __( 'Minimum Quantity', 'woocommerce-max-quantity' ),
'placeholder' => '',
'desc_tip' => 'true',
'description' => __( 'Optional. Set a minimum quantity limit allowed per order. Enter a number, 1 or greater.', 'woocommerce-max-quantity' )
@saranyagokula
saranyagokula / filter-multiple-order-statuses.php
Last active March 30, 2024 11:04
Filter Multiple Order Statuses
add_action('init', 'start_session', 1);
function start_session() {
if (!session_id()) {
session_start();
}
}
// Filter orders by status
add_filter('woocommerce_my_account_my_orders_query', 'ts_my_account_orders_filter_by_status');
function ts_my_account_orders_filter_by_status($args) {
@saranyagokula
saranyagokula / custom-filter-field-oders-page.php
Last active February 29, 2024 05:08
Add custom filter field and column for custom meta fields in admin order table
// Add Zirconia column to the Orders page in WooCommerce admin
function ts_add_zirconia_column($columns) {
$columns['zirconia'] = __('Zirconia', 'woocommerce');
return $columns;
}
add_filter('manage_woocommerce_page_wc-orders_columns', 'ts_add_zirconia_column');
// Display the Zirconia value in the Zirconia column
function ts_display_zirconia_column($column, $post_id) {
if ($column == 'zirconia') {
@saranyagokula
saranyagokula / zirconia_add__filter_column_orders_table.php
Created February 27, 2024 11:18
Adding Zirconia Column and Filter to WooCommerce Orders Table
// Add Zirconia column to the Orders page in WooCommerce admin
function ts_add_zirconia_column($columns) {
$columns['zirconia'] = __('Zirconia', 'woocommerce');
return $columns;
}
add_filter('manage_woocommerce_page_wc-orders_columns', 'ts_add_zirconia_column');
// Display the Zirconia value in the Zirconia column
function ts_display_zirconia_column($column, $post_id) {
if ($column == 'zirconia') {
@saranyagokula
saranyagokula / Estimated-Delivery-Date-and-Time.php
Last active February 5, 2024 09:55
Customizing Estimated Delivery Date and Time for Unique Business Scenarios
add_action('woocommerce_after_add_to_cart_form', 'ts_dispatch_info_single_product');
function ts_dispatch_info_single_product() {
// Get the current time according to WordPress timezone settings
$current_time = current_time('mysql');
// Convert the current time to a DateTime object
$current_datetime = new DateTime($current_time);
@saranyagokula
saranyagokula / Disable Payment Gateway For Specific Shipping Method.php
Last active February 5, 2024 09:44
Disable-Payment-Gateway-For-Specific-Shipping-Method
add_filter( 'woocommerce_available_payment_gateways', 'ts_gateway_disable_for_shipping_rate' );
function ts_gateway_disable_for_shipping_rate( $available_gateways ) {
if ( ! is_admin() && WC()->session ) {
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
if ( isset( $available_gateways['cod'] ) && 0 === strpos( $chosen_shipping, 'local_pickup' ) ) {
unset( $available_gateways['cod'] );
}
}
@saranyagokula
saranyagokula / set-minimum-threshold-for-different-shipping-zone.php
Last active August 11, 2023 07:31
set-minimum-threshold-for-different-shipping-zone.php
<?php
add_action( 'wp_footer', 'ts_cart_refresh_update_qty' );
function ts_cart_refresh_update_qty() {
if ( is_cart() || ( is_cart() && is_checkout() ) ) {
wc_enqueue_js( "
$('div.woocommerce').on('click', 'input.qty', function(){
$('[name=\'update_cart\']').trigger('click');
});
" );