Skip to content

Instantly share code, notes, and snippets.

View mehrshaddarzi's full-sized avatar

Mehrshad Darzi mehrshaddarzi

View GitHub Profile
@mehrshaddarzi
mehrshaddarzi / sepidar_postmeta.sql
Created September 23, 2025 14:22
sepidar post meta sql
SELECT
MAX(CASE WHEN pm1.meta_key = 'Code' THEN pm1.meta_value END) AS 'Code',
MAX(CASE WHEN pm1.meta_key = 'Name' THEN pm1.meta_value END) AS 'Name',
MAX(CASE WHEN pm1.meta_key = 'Barcode' THEN pm1.meta_value END) AS 'Barcode',
MAX(CASE WHEN pm1.meta_key = 'Few' THEN pm1.meta_value END) AS 'Few',
MAX(CASE WHEN pm1.meta_key = 'RegularPrice' THEN pm1.meta_value END) AS 'RegularPrice',
MAX(CASE WHEN pm1.meta_key = 'SalePrice' THEN pm1.meta_value END) AS 'SalePrice',
MAX(CASE WHEN pm1.meta_key = 'WholeSalePrice' THEN pm1.meta_value END) AS 'WholeSalePrice',
MAX(CASE WHEN pm1.meta_key = 'UnitName' THEN pm1.meta_value END) AS 'UnitName',
MAX(CASE WHEN pm1.meta_key = 'IsActive' THEN pm1.meta_value END) AS 'IsActive',
@mehrshaddarzi
mehrshaddarzi / wc-multisite use custom meta as sku.php
Created September 17, 2025 13:49
wc-multisite use custom meta as sku
<?php
add_filter('wc_multisite_prepare_variation_product_item_data', function($data, $variation) {
$meta = get_post_meta($variation->get_id(), 'mahak_product_detail_id', true);
if(empty($meta)) {
return $data;
}
$sku = $variation->get_sku();
@mehrshaddarzi
mehrshaddarzi / wordpress_ram_usage_log.php
Last active September 15, 2025 09:31
WordPress Ram Usage Log
<?php
// افزودن هدر برای مانیتورینگ مصرف رم
function add_memory_usage_header() {
if (!is_admin()) {
$memory_usage = round(memory_get_peak_usage() / 1024 / 1024, 2);
header('X-Memory-Usage: ' . $memory_usage . ' MB');
}
@mehrshaddarzi
mehrshaddarzi / wp_remote_request_log_footer.php
Last active September 9, 2025 08:24
WP Remote Request Log at WordPress Footer
@mehrshaddarzi
mehrshaddarzi / auto_select_first_attribute.php
Created August 30, 2025 13:17
Auto Select First Attribute WooCommerce Product
<?php
add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'set_default_available_option_for_all_attributes', 20 );
function set_default_available_option_for_all_attributes( $args ) {
// این بخش فقط در بارگذاری اولیه صفحه (مانند صفحه محصول) اجرا می‌شود
if ( ! wp_doing_ajax() ) {
if ( ! empty( $args['selected'] ) ) {
return $args;
@mehrshaddarzi
mehrshaddarzi / woocmmerce-order-delete.sql
Last active August 28, 2025 05:26
Delete all WooCommerce Orders MySQL
START TRANSACTION;
-- حذف کامنت‌ها و متادیتای کامنت‌ها
DELETE c, cm
FROM wp_comments c
LEFT JOIN wp_commentmeta cm ON c.comment_ID = cm.comment_id
WHERE c.comment_type = 'order_note';
-- حذف آیتم‌های سفارش و متادیتای آن‌ها
DELETE oi, oim
@mehrshaddarzi
mehrshaddarzi / unique_random_number_wordpress.php
Created August 26, 2025 15:18
Generate unique Random Number in WordPress
<?php
function generate_secure_unique_number($order_id, $digits = 24) {
$salts = array();
$salt_constants = array(
'AUTH_KEY',
'SECURE_AUTH_KEY',
'LOGGED_IN_KEY',
@mehrshaddarzi
mehrshaddarzi / no_cache_header.php
Created July 20, 2025 08:56
No Cache Header in WordPress
<?php
/**
* افزودن هدرهای عدم کش برای صفحات حاوی 'rahkaran' در URL
*/
add_filter('nocache_headers_args', 'rahkaran_no_cache_headers_with_cloudflare');
function rahkaran_no_cache_headers_with_cloudflare($headers) {
// بررسی وجود 'rahkaran' در URL بدون توجه به بزرگی/کوچکی حروف
if (isset($_SERVER['REQUEST_URI']) {
$request_uri = strtolower($_SERVER['REQUEST_URI']);
@mehrshaddarzi
mehrshaddarzi / WooCommerceReportPage.php
Created July 16, 2025 11:18
Create New Report Page WooCommerce By Select Box "woocommerce-checkout-field-editor-pro" plugin
<?php
class Advanced_WC_Report {
public function __construct() {
add_action('admin_menu', array($this, 'add_admin_menu'));
add_action('admin_head', array($this, 'add_admin_styles'));
}
@mehrshaddarzi
mehrshaddarzi / category.md
Created June 29, 2025 06:15
Elementor Dynamic Tags
ثابت (Constant) توضیح و کاربرد مثال ویجت‌ها
Module::TEXT_CATEGORY برای خروجی‌های متنی ساده. این پرکاربردترین دسته است. ویرایشگر متن، سربرگ، دکمه، نقل قول
Module::URL_CATEGORY برای هر نوع لینک و URL. فیلد "پیوند" در ویجت‌های دکمه، تصویر، سربرگ
Module::IMAGE_CATEGORY برای خروجی تصویر. خروجی باید آرایه‌ای با کلید id و url باشد. ویجت تصویر، پس‌زمینه بخش/ستون
Module::NUMBER_CATEGORY برای خروجی‌های عددی. مانند قیمت، تعداد، شناسه و... ویجت شمارنده، جدول قیمت، سربرگ
Module::COLOR_CATEGORY برای خروجی کد رنگ. (مثلاً #ff5500) کنترل‌های انتخاب رنگ در بخش استایل

| ثابت (Constant) | توضیح و کاربرد | مثال ویجت‌ها |