فهرست نهایی کدهای WooCommerce
زمان می گذرد… 6 ماه از شروع به کار برای WooThemes به عنوان تکنسین پشتیبانی تمام وقت WooCommerce می گذرد. در طی این 6 ماه چیزهای زیادی در WooCommerce یاد گرفتم و بسیاری از قطعه های مرتبط WooCommerce را کدنویسی کردم.
WooCommerce ابزاری واقعا قدرتمند و به راحتی قابل گسترش است. دارای قلاب های زیادی است که تقریباً برای همه چیز قابل استفاده است و این چیزی است که WooCommerce را بسیار خوب می کند. در اینجا فهرستی از تکههایی است که در ماههای گذشته نوشتم یا اقتباس کردم.
قطعات زیر را می توان کپی و در پوشه functions.php طرح زمینه شما جایگذاری کرد (یک طرح زمینه کودک اگر با یک موضوع شخص ثالث کار می کنید) یا از طریق افزونه قطعه کد.
من پیش رفتم و همه قطعهها را شمارهگذاری کردم، بنابراین اگر مشکلی با مورد خاصی دارید، میتوانید در بخش نظرات به من اطلاع دهید! WooCommerce بهروزرسانیهای مکرر انجام میدهد و ممکن است برخی از این قطعهها در آینده نیاز به بهروزرسانی داشته باشند.
همچنین اگر میخواهید به سرعت برای مشاهده یک قطعه خاص بپرید، فهرستی از مطالب وجود دارد:
1. پشتیبانی WooCommerce
را اعلام کنید
این قطعه را می توان به طرح زمینه شما اضافه کرد تا به WooCommerce اطلاع دهد که سازگار است.
add_action( 'after_setup_theme', function() {
add_theme_support('woocommerce' );
});
2. تمام CSS های WooCommerce
را حذف کنید
این قطعه تمام شیوه نامه های WooCommerce را حذف می کند تا شما کنترل کاملی بر طراحی داشته باشید.
add_filter( 'woocommerce_enqueue_styles', '__return_empty_array' );
3. حذف سبک های خاص WooCommerce
این قطعه، شیوه نامه های خاص WooCommerce را حذف می کند:
تابع wpexplorer_wc_remove_styles( $styles ) {
unset( $styles['woocommerce-general'] );
unset( $styles['woocommerce-layout'] );
unset( $styles['woocommerce-smallscreen'] );
بازگشت $styles;
}
add_filter('woocommerce_enqueue_styles', 'wpexplorer_wc_remove_styles');
4. لغزنده گالری محصول، زوم و لایت باکس
را فعال کنید
این قطعه پشتیبانی از نوار لغزنده گالری محصول، زوم و لایت باکس را فعال می کند.
add_action( 'after_setup_theme', function() {
add_theme_support('wc-product-gallery-slider' );
add_theme_support('wc-product-gallery-zoom' );
add_theme_support('wc-product-gallery-lightbox' );
});
5. نوع پرداخت را به ایمیل مدیریت WooCommerce
اضافه کنید
این قطعه نوع پرداختی را که در هنگام تسویه حساب استفاده شده است را در ایمیل سفارش نمایش می دهد.
function wpexplorer_wc_add_payment_method_to_admin_new_order($order, $is_admin_email ) {
if ($is_admin_email ) {
echo 'روش پرداخت:' . esc_html($order->payment_method_title). '
';
}
}
add_action('woocommerce_email_after_order_table', 'wpexplorer_wc_add_payment_method_to_admin_new_order', 15, 2);
6. تعداد نمایش محصولات با فروش بالا
این قطعه تعداد نمایش محصولات پرفروش را تغییر میدهد و آن را به 3 تغییر میدهد.
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );
if (! function_exists('woocommerce_output_upsells') ) {
تابع woocommerce_output_upsells() {
woocommerce_upsell_display( 3,3 );
}
}
add_action('woocommerce_after_single_product_summary', 'woocommerce_output_upsells', 15);
7. دسته بندی محصولات خاص را از صفحه فروشگاه
حذف کنید
از این قطعه میتوان برای حذف محصولات در دستههای خاص از فروشگاه استفاده کرد.
عملکرد wpexplorer_exclude_categories_from_shop($query ) {
if ( ! $query->is_main_query() || is_admin() || ! function_exists( 'is_shop' ) || ! is_shop() ) {
بازگشت؛
}
$excluded_categories = [
"رنگ"،
"طعم"،
ادویه جات ترشی جات،
"وانیل"،
]؛
$query->set( 'tax_query', [ [
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $excluded_categories،
'operator' => 'در داخل نیست'
] ])
}
add_action('pre_get_posts', 'wpexplorer_exclude_categories_from_shop');
8. ترجمه سریع هر رشته
گاهی اوقات ممکن است بخواهید به سرعت یک رشته را بدون درهم ریختن فایل های POT ترجمه کنید. این قطعه می تواند برای تغییر هر متن قابل ترجمه استفاده شود.
تابع wpexplorer_translate_text( $text ) {
$text = str_replace( 'Choose and option', 'Select', $text );
بازگشت $text;
}
add_filter('gettext', 'wpexplorer_translate_text');
add_filter('ngettext', 'wpexplorer_translate_text');
از این قطعه میتوان برای حذف دستههای خاصی از ویجت دستههای WooCommerce استفاده کرد. حتماً [ '16' ]
را تغییر دهید تا آرایهای از شناسههایی باشد که میخواهید حذف کنید.
عملکرد wpexplorer_filter_wc_categories_widget_args($args ) {
$args['exclude'] = [ '16' ];
بازگشت $args;
}
add_filter('woocommerce_product_categories_widget_args', 'wpexplorer_filter_wc_categories_widget_args');
10. متن “Out of Stock”
را تغییر دهید
قطعه زیر متن پیشفرض «Out of Stock» را تغییر میدهد و آن را به «Sold» تغییر میدهد.
عملکرد wpexplorer_wc_modify_out_of_stock_text( $availability ) {
$availability['availability'] = str_replace( 'تمام موجودی'، 'فروخته'، $availability['availability'] );
بازگشت $availability;
}
add_filter('woocommerce_get_availability', 'wpexplorer_wc_modify_out_of_stock_text' );
11. نمایش «محصول از قبل در سبد خرید» به جای دکمه «افزودن به سبد خرید»
این قطعه برای تغییر دکمه پیشفرض «افزودن به سبد خرید» به «Already in cart – Add Again» است؟ هنگام مشاهده محصولی که از قبل در سبد خرید است.
// ویرایش تک محصول WooCommerce افزودن به متن سبد خرید.
تابع wpexplorer_wc_modify_add_to_cart_text($text) {
جهانی $woocommerce;
foreach($woocommerce->cart->get_cart() به عنوان $cart_item_key => $values ) {
if ( $values['data']->id == get_the_ID() ) {
$text = esc_html__('از قبل در سبد خرید هستید - دوباره اضافه کنید؟', 'text_domain' );
شکستن
}
}
بازگشت $text;
}
add_filter('woocommerce_product_single_add_to_cart_text', 'wpexplorer_wc_modify_add_to_cart_text' );
// ورودی WooCommerce افزودن به متن سبد خرید را تغییر دهید.
تابع woo_archive_custom_cart_button_text($text) {
جهانی $woocommerce;
foreach($woocommerce->cart->get_cart() به عنوان $cart_item_key => $values ) {
if ( $values['data']->id == get_the_ID() ) {
$text = esc_html__('از قبل در سبد خرید هستید - دوباره اضافه کنید؟', 'text_domain' );
شکستن
}
}
بازگشت $text;
}
add_filter('add_to_cart_text', 'woo_archive_custom_cart_button_text');
12. پنهان کردن تعداد مشاهده محصولات دسته بندی
این قطعه تعداد محصولات پیشفرض را در نمای دستهها حذف میکند.
add_filter('woocommerce_subcategory_count_html', '__return_empty_string' );
13. فیلدهای پرداخت حساب را الزامی کنید
این قطعه ویژگی مورد نیاز را به فیلدهای پرداخت مختلف اضافه می کند.
عملکرد wpexplorer_wc_filter_checkout_fields( $fields ) {
$fields['account']['account_username']['required'] = true;
$fields['account']['account_password']['required'] = true;
$fields['account']['account_password-2']['required'] = true;
بازگشت $fields;
}
add_filter('woocommerce_checkout_fields', 'wpexplorer_wc_filter_checkout_fields' );
14. تغییر نام یک برگه محصول
این قطعه نام برگه “توضیحات” محصول را به “اطلاعات بیشتر” تغییر میدهد. میتوانید کد را برای هدف قرار دادن هر برگه تغییر دهید.
عملکرد wpexplorer_wc_filter_product_tabs( $tabs ) {
$tabs['description']['title'] = 'اطلاعات بیشتر';
بازگشت $tabs;
}
add_filter('woocommerce_product_tabs', 'wpexplorer_wc_filter_product_tabs', 100);
15. فهرست دسته بندی محصولات WooCommerce
این قطعه دستههای محصول را میگیرد، آنها را حلقه میزند و بهعنوان یک فهرست نمایش میدهد.
$product_categories = get_terms( 'product_cat', [
'number' => '3',
'orderby' => 'نام',
'order' => 'ASC',
'hide_empty' => درست است
])
if ( $product_categories && ! is_wp_error( $product_categories ) ) {
پژواک "";
foreach ( $product_categories به عنوان $product_category ) {
echo '- ' . esc_html($product_category->name) . '
';
}
پژواک "
";
}
16. عنوان صفحه فروشگاه را جایگزین کنید
این قطعه کد جایگزین عنوان پیش فرض صفحه فروشگاه می شود. توجه داشته باشید که اگر کد کار نمی کند، ممکن است به دلیل موضوعی باشد که استفاده می کنید.
تابع wpexplorer_wc_archive_title( $title ) {
if ( is_shop() && $shop_id = wc_get_page_id( 'shop' ) ) {
$title = get_the_title( $shop_id );
}
بازگشت $title;
}
add_filter('get_the_archive_title', 'wpexplorer_wc_archive_title');
این قطعه به شما امکان می دهد عنوان ویجت را (در صورت تقاضا) تغییر دهید.
تابع wpexplorer_wc_widget_title($title, $instance, $id_base ) {
if('onsale' === $id_base ) {
بازگشت "عنوان ویجت فروش سفارشی"؛
}
بازگشت $title;
}
add_filter('widget_title', 'wpexplorer_wc_widget_title', 10, 3 );
18. شناسه محصول ویژه
را دریافت کنید
این قطعه فهرستی از شناسههای محصول ویژه را برمیگرداند.
$query_featured_products = new WP_Query( [
'post_type' => 'محصول'،
'ignore_sticky_posts' => درست است،
'posts_per_page' => -1،
'fields' => 'ids',
'tax_query' => [
'taxonomy' => 'product_visibility',
'field' => 'نام',
'terms' => 'ویژه'،
'operator' => 'IN'
]
])
$featured_products = $query_featured_products->پست ها ?? [];
19. حداقل مقدار سفارش را تنظیم کنید
این قطعه حداقل 5 سفارش را اضافه می کند تا کاربر نتواند آن را بررسی کند مگر اینکه حداقل 5 مورد در سبد خرید داشته باشد.
تابع wpexplorer_wc_minimum_order_amount() {
جهانی $woocommerce;
حداقل $ = 5;
if ($woocommerce->cart->total() ) {
add_error( sprintf( 'برای ثبت سفارش باید یک سفارش با حداقل %s داشته باشید.', $minimum ) );
}
}
add_action('woocommerce_checkout_process', 'wpexplorer_wc_minimum_order_amount' );
20. ترتیب کاتالوگ پیش فرض فروشگاه
را تغییر دهید
این قطعه ترتیب پیشفرض محصولات نشان داده شده در فروشگاه شما را تغییر میدهد. توجه داشته باشید، اکنون میتوانید این را از طریق تنظیمات WooCommerce تنظیم کنید.
عملکرد wpexplorer_wc_default_catalog_orderby() {
بازگشت "قیمت"؛
}
add_filter('woocommerce_default_catalog_orderby', 'wpexplorer_wc_default_catalog_orderby');
21. تغییر مسیر دکمه افزودن به سبد خرید به صفحه پرداخت
این قطعه هنگام افزودن یک محصول به سبد خرید، کاربران را به صندوق پرداخت هدایت می کند. توجه داشته باشید، اکنون می توانید این کار را از طریق تنظیمات WooCommerce بدون هیچ کد سفارشی انجام دهید.
عملکرد wpexplorer_wc_redirect_to_checkout($redirect ) {
if ($checkout_url = wc_get_checkout_url() ) {
$redirect = $checkout_url;
}
بازگشت $redirect;
}
add_filter('add_to_cart_redirect', 'wpexplorer_wc_redirect_to_checkout');
22. پس از تکمیل سفارش، گیرنده ایمیل را اضافه کنید
این قطعه به شما امکان می دهد گیرندگان ایمیل اضافی را برای دریافت ایمیل سفارش تکمیل شده اضافه کنید.
تابع wpexplorer_wc_add_email_recipients( $recipient ) {
$recipient = "{$recipient}, your@email.com";
بازگشت $recipient;
}
add_filter('woocommerce_email_recipient_customer_completed_order', 'wpexplorer_wc_add_email_recipients', 10);
23. لوگوی پیشفرض PayPal
را جایگزین کنید
این قطعه به شما امکان میدهد لوگوی پیشفرض PayPal را در فرم پرداخت تغییر دهید.
تابع wpexplorer_wc_replace_paypal_icon() {
بازگشت 'https://www.paypalobjects.com/webstatic/mktg/logo-center/logo_betalen_met_paypal_nl.jpg'؛
}
add_filter('woocommerce_paypal_icon', 'wpexplorer_wc_replace_paypal_icon' );
24. تصویر پیشفرض جایبان
را تغییر دهید
این قطعه تصویر پیشفرض مکاننما را تغییر میدهد.
تابع wpexplorer_wc_change_placeholder_image( $src ) {
$src = "YOUR_CUSTOM_IMAGE_URL";
بازگشت $src;
}
add_filter('woocommerce_placeholder_img_src', 'wpexplorer_wc_change_placeholder_image' );
25. سبد خرید را به صورت دستی خالی کنید
این قطعه کد به صورت دستی سبد خرید شما را خالی می کند.
$woocommerce جهانی;
$woocommerce->cart->empty_cart();
26. هنگام بارگیری صفحه، محصولی را به سبد خرید اضافه کنید
این قطعه هنگام بازدید از سایت به طور خودکار محصولی را به سبد خرید اضافه می کند.
عملکرد wpexplorer_wc_auto_add_products_to_cart() {
if (! is_admin()) {
جهانی $woocommerce;
$product_id_to_add = 64; // شناسه محصول برای افزودن
$found = false;
foreach ($woocommerce->cart->get_cart() به عنوان $cart_item_key => $values ) {
if ( (int) $product_id_to_add === (int) $values['data']->id ) {
$found = true;
بازگشت؛
}
}
اگر ( ! $found ) {
$woocommerce->cart->add_to_cart( $product_id_to_add );
}
}
}
add_action('init', 'wpexplorer_wc_auto_add_products_to_cart' );
27. یک نماد ارز سفارشی اضافه کنید
این قطعه نماد ارز جدیدی را اضافه می کند که می توانید از بین آن انتخاب کنید.
// یک ارز سفارشی اضافه می کند.
تابع wpexplorer_wc_add_custom_curency ($currencies) {
$currency['ABC'] = __( 'نام ارز ABC', 'text_domain' );
بازگشت $ارز;
}
add_filter('woocommerce_currencies', 'wpexplorer_wc_add_custom_curency' );
// یک نماد ارز سفارشی اضافه می کند.
تابع wpexplorer_wc_modify_currency_symbol($currency_symbol، $currency) {
if ( 'ABC' === $currency ) {
$currency_symbol = '$';
}
بازگشت $currency_symbol;
}
add_filter('woocommerce_currency_symbol', 'wpexplorer_wc_modify_currency_symbol', 10, 2);
28. متن دکمه افزودن به سبد خرید
را تغییر دهید
این قطعه متن پیشفرض دکمه افزودن به سبد خرید را به متن سفارشی شما تغییر میدهد. توجه داشته باشید، بدون در نظر گرفتن نوع محصول، روی همه دکمهها تأثیر میگذارد.
تابع wpexplorer_wc_modify_cart_button_text() {
return __( 'My Button Text', 'text_domain' );
}
add_filter( 'single_add_to_cart_text', 'wpexplorer_wc_modify_cart_button_text' );
add_filter('add_to_cart_text', 'wpexplorer_wc_modify_cart_button_text');
29. BCC همه ایمیلهای WooCommerce
اگر میخواهید همه ایمیلها را مخفی کنید، میتوانید این کار را با قطعه زیر انجام دهید:
تابع wpexplorer_wc_bcc_all_emails() {
'مخفی مخفی: youremail@yourdomain.com' را برگردانید. "rn"؛
}
add_filter('woocommerce_email_headers', 'wpexplorer_wc_bcc_all_emails');
از این قطعه میتوان برای تغییر تعداد پیشفرض محصولات مرتبط که در صفحات تک محصول نمایش داده میشوند، استفاده کرد.
عملکرد wpexplorer_wc_related_posts_per_page($args ) {
$args['posts_per_page'] = 4;
بازگشت $args;
}
add_filter('woocommerce_output_related_products_args', 'wpexplorer_wc_related_posts_per_page' );
31. متن بعدی و قبلی را به فلش
تغییر دهید
این قطعه به آرگومان های صفحه بندی WooCommerce متصل می شود تا متن بعدی و قبلی را به فلش تبدیل کند.
تابع wpexplorer_wc_pagination_args( $args ) {
$args['prev_text'] = '←';
$args['next_text'] = '→';
بازگشت $args;
}
add_filter('woocommerce_pagination_args', 'wpexplorer_wc_pagination_args');
32. تمام برگههای محصول منفرد
را حذف کنید
این قطعه به سرعت همه برگهها را از یک محصول حذف میکند.
add_filter( 'woocommerce_product_tabs', '__return_empty_array', PHP_INT_MAX );
33. Breadcrumbs
را حذف کنید
این قطعه خردههای نان WooCommerce را حذف میکند.
remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);
34. محدود کردن فهرست کشورهای حمل و نقل
این قطعه، کشورها را در فهرست کشویی انتخاب حمل و نقل محدود میکند.
عملکرد wpexplorer_wc_override_checkout_fields( $fields ) {
$fields['shipping']['shipping_country'] = [
'type' => 'انتخاب',
'label' => esc_html__( 'فهرست جدید کشور من'، 'text_domain')،
'گزینه ها' => [
'AU' => 'استرالیا'،
]،
]؛
بازگشت $fields;
}
add_filter('woocommerce_checkout_fields' , 'wpexplorer_wc_override_checkout_fields');
35. “رایگان!” را تغییر دهید متن در محصولات رایگان
این قطعه به شما امکان میدهد HTML پیشفرض اضافهشده برای محصولات رایگان را تغییر دهید تا به کاربر اطلاع دهید که رایگان است.
تابع wpexplorer_wc_modify_free_price_html() {
بازگشت "این محصول رایگان است!"؛
}
add_filter('woocommerce_free_price_html', 'wpexplorer_wc_modify_free_price_html');
36. در صورت وجود ارسال رایگان، همه روشهای ارسال را حذف کنید
اگر ارسال رایگان در دسترس باشد، این قطعه همه روشهای ارسال موجود را حذف میکند، بنابراین تنها روشی است که میتوان انتخاب کرد.
عملکرد wpexplorer_wc_modify_available_shipping_methds( $available_methods ) {
if ( isset( $available_methods['free_shipping'] ) ) {
$available_methods = [ $available_methods['ارسال_رایگان'] ];
}
$available_methods را برگردانید.
}
add_filter('woocommerce_available_shipping_methods', 'wpexplorer_wc_modify_available_shipping_methds' , 10);
37. فیلد دولت حمل و نقل را الزامی نکنید
این قطعه کد ویژگی مورد نیاز را از قسمت وضعیت حمل و نقل حذف می کند.
عملکرد wpexplorer_wc_make_shipping_state_not_required( $address_fields ) {
$address_fields['shipping_state']['required'] = false;
بازگشت $address_fields.
}
add_filter('woocommerce_shipping_fields', 'wpexplorer_wc_make_shipping_state_not_required', 10);
38. به صورت برنامه ای یک کوپن جدید ایجاد کنید
این قطعه به شما امکان می دهد با استفاده از کد یک کوپن جدید درج کنید.
$coupon_code = 'UNIQUECODE';
$amount = '10';
$discount_type = 'fixed_cart';
$new_coupon_id = wp_insert_post( [
'post_title' => $coupon_code،
'post_content' => ''،
'post_status' => 'انتشار'،
'post_author' => 1،
'post_type' => 'shop_coupon'
])
if ($new_coupon_id ) {
update_post_meta($new_coupon_id، 'discount_type', $discount_type );
update_post_meta($new_coupon_id, 'coupon_amount', $amount );
update_post_meta($new_coupon_id، 'individual_use', 'no' );
update_post_meta( $new_coupon_id, 'product_ids', '' );
update_post_meta($new_coupon_id, 'exclude_product_ids', '' );
update_post_meta($new_coupon_id, 'usage_limit', '' );
update_post_meta($new_coupon_id، 'تاریخ_انقضا'، '' );
update_post_meta($new_coupon_id، 'apply_before_tax', 'yes' );
update_post_meta($new_coupon_id، 'ارسال_رایگان'، 'نه');
}
39. تغییر خط موضوع ایمیل سفارش جدید
این قطعه به شما این امکان را می دهد که موضوع ایمیل ارسال شده را هنگام ثبت سفارش جدید تغییر دهید.
عملکرد wpexplorer_wc_change_new_order_email_subject($subject, $order ) {
جهانی $woocommerce;
$blogname = wp_specialchars_decode( get_option( 'نام وبلاگ' ), ENT_QUOTES );
$subject = sprintf( '[%s] سفارش مشتری جدید (# %s) از نام %s %s', $blogname, $order->id, $order->billing_first_name, $order->billing_last_name );
بازگشت $subject;
}
add_filter('woocommerce_email_subject_new_order', 'wpexplorer_wc_change_new_order_email_subject', 1, 2);
40. متن فروش
را تغییر دهید
این قطعه متن نشان پیشفرض فروش را تغییر میدهد.
تابع wpexplorer_woo_sale_flash() {
بازگشت '' . esc_html__('Sale', 'text_domain'). '';
}
add_filter('woocommerce_sale_flash', 'wpexplorer_woo_sale_flash' );
نتیجه گیری
و… همین! امیدوارم این قطعهها مفید واقع شوند، همه آنها آزمایش شدهاند و همه آنها خوب کار میکنند، اما اگر با مشکلی مواجه شدید، لطفاً بخش نظرات را به من اطلاع دهید. از آن لذت ببرید! 😉
ادامه مطلب
ممکن است به راهنماها و مقالات WooCommerce مرتبط زیر علاقه مند باشید:
یادداشت نویسنده: این پست در اصل توسط Remi اما در حال حاضر توسط کارکنان WPExplorer بهروزرسانی و نگهداری میشود.