Sanal ortamın endişelerini kenara bırakıp, geniş hizmet yelpazesiyle bu külfeti sizlere daha cazip hale getiren bir ekiple çalışmaya ne dersin?
Hemen Ulaşın: +90 850 305 25 95
E-Mail:info@margarit.com.tr
Adres: İvoksan, Neva Home Offices
1455 Cadde, 22/41 Yenimahalle / Ankara

WordPress ve Woocommerce kullanırken olmazsa olmaz kısayollar

margarit-web-reklam-bilisim-2020

Woocommerce ile çalışmak kolay görünür ancak yorucu ve çok alternatif arasından seçim yapma süreci sizi yorarken bir o kadar da sıkıcı ve bunaltıcı hale gelir.

Sonra bakarsınız ki SQL ile çalışmak çok daha net ve teferruatsız olabilir. Ancak bunun için hangi veritabanında, hangi tablodan, hangi satır ve metakey üzerinden arama yapacağınızı bilmeniz şarttır.

Birkaç kısa ama elzem özellik ile Woocommerce ve WordPress kullanıcıları için hayati önem arz eden bilgileri iletiyoruz. Yazı içerisinde özellikle veritabanı konusunda işlem sağlarken belirtilen “wp_” ön eki tamamen sizin ayarlarınızdan bağımsız olarak standart ek olarak belirtilmiştir. Siz kendi yükleme ayarlarınızdaki ön ek (prefix) ile güncelleyerek kodları kullanmalısınız.

Woocommerce ürünlerini veri tabanında nerede bulabiliriz?

Ürünler temel olarak iki tabloda konumlandırılır.

wp_posts table with a post_type like product or product_variation, 
wp_postmeta table with the corresponding post_id by product (the product ID).

Ürün kategorileri, alt kategoriler, etiketler ve özellikler ise alt tablolarda yer alıyor.

wp_terms 
wp_termmeta 
wp_term_taxonomy 
wp_term_relationships 
wp_woocommerce_termmeta

Woocommerce tüm ürünleri SQL ile export etmek

Woocommerce kullanıcısı olarak binlerce ürün yelpazeniz var ise, maalesef kasan sisteminiz için bir çok eklenti yükleyip de Cache sistemleri ile çare bulmaya çalışırsınız.

Ancak Woocommerce tüm dünyaya hitap eden bir sistem olduğu için, gerekli gereksiz bir çok fonksiyonu eş zamanlı mecburen çalıştıran bir sistemdir. Bu yükü hafifletmek için gereksiz gördüğünüz fonksiyon dağılımını hafifletebilirsiniz, bu sayede kullanmadığınız özellikler sistem tarafından çağırılmaz ve size hız/zaman kazandırır.

Aşağıda vermiş olduğum kodu temanızın functions.php dosyasına eklemeniz yeterli, sonrasında dilediğiniz satırları silebilir veya başkalarını da siz ekleyebilirsiniz. Bu sayede gözle görünür bir hız kazanacağınızdan eminiz!

add_action( 'wp_enqueue_scripts', 'child_manage_woocommerce_styles', 99 );

function child_manage_woocommerce_styles() {
    //remove generator meta tag
    remove_action( 'wp_head', array( $GLOBALS['woocommerce'], 'generator' ) );

    //first check that woo exists to prevent fatal errors
    if ( function_exists( 'is_woocommerce' ) ) {
        //dequeue scripts and styles
        if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
            wp_dequeue_style( 'woocommerce_frontend_styles' );
            wp_dequeue_style( 'woocommerce_fancybox_styles' );
            wp_dequeue_style( 'woocommerce_chosen_styles' );
            wp_dequeue_style( 'woocommerce_prettyPhoto_css' );
            wp_dequeue_script( 'wc_price_slider' );
            wp_dequeue_script( 'wc-single-product' );
            wp_dequeue_script( 'wc-add-to-cart' );
            wp_dequeue_script( 'wc-cart-fragments' );
            wp_dequeue_script( 'wc-checkout' );
            wp_dequeue_script( 'wc-add-to-cart-variation' );
            wp_dequeue_script( 'wc-single-product' );
            wp_dequeue_script( 'wc-cart' );
            wp_dequeue_script( 'wc-chosen' );
            wp_dequeue_script( 'woocommerce' );
            wp_dequeue_script( 'prettyPhoto' );
            wp_dequeue_script( 'prettyPhoto-init' );
            wp_dequeue_script( 'jquery-blockui' );
            wp_dequeue_script( 'jquery-placeholder' );
            wp_dequeue_script( 'fancybox' );
            wp_dequeue_script( 'jqueryui' );
        }
    }
 }

SQL ile Woocommerce tüm ürünlerin durumunu değiştirme

Binlerce ürününüz var ve WordPress kullandığınızdan dolayı kaynak sorunu yaşıyor, 50-60lı paketler halinde ürün durumları, isimleri ve benzeri özellikleri toplu halde değiştirmek istiyorsunuz değil mi?

O zaman önce ürünleri SQL ile seçiyoruz.

SELECT wp_posts 
WHERE post_type='product'

Sonra bakıyoruz doğru tabloları mı düzenleyeceğiz, hata yapma payımızı minimize edelim, ondan sonra update komutunu kullanalım.

UPDATE wp_posts 
SET post_status='publish'
WHERE post_type='product'

Bu komutla durumu ne olursa olsun tüm ürünlerin durumunu Yayınlanmış olarak değiştirmiş oluyorsunuz.
Taslak olarak kaydetmek için:

UPDATE wp_posts 
SET post_status='draft'
WHERE post_type='product'

İnceleme bekliyor olarak kaydetmek için:

UPDATE wp_posts 
SET post_status='pending'
WHERE post_type='product'

Woocommerce ürün tablarını nasıl düzenleriz?

Woocommerce kullanıyorsanız açıklama, detaylar, yeni tab ekleme veya tab düzenini değiştirme gibi işlemlere mutlaka ihtiyaç duyacaksınız demektir.

Şimdi arşivleme amacıyla bu kodları yazıya ekliyorum, hem ben hem de sizler inceleme şansı bulabiliriz.

Woocommerce Tabları silmek isterseniz:


function woo_remove_product_tabs( $tabs ) {

    unset( $tabs['description'] );          // Remove the description tab
    unset( $tabs['reviews'] );             // Remove the reviews tab
    unset( $tabs['additional_information'] );      // Remove the additional information tab

    return $tabs;

}

Woocommerce Tabların isimlerini değiştirmek isterseniz:

add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {

    $tabs['description']['title'] = __( 'More Information' );        // Rename the description tab
    $tabs['reviews']['title'] = __( 'Ratings' );                // Rename the reviews tab
    $tabs['additional_information']['title'] = __( 'Product Data' );    // Rename the additional information tab

    return $tabs;

}

Woocommerce Tabları bir fonksiyon ile düzenlemek isterseniz:

add_filter( 'woocommerce_product_tabs', 'woo_custom_description_tab', 98 );
function woo_custom_description_tab( $tabs ) {

    $tabs['description']['callback'] = 'woo_custom_description_tab_content';    // Custom description callback

    return $tabs;
}

function woo_custom_description_tab_content() {
    echo '<h2>Custom Description</h2>';
    echo '<p>Here's a custom description</p>';
}

Woocommerce Tabların sırasını değiştirmek isterseniz:

add_filter( 'woocommerce_product_tabs', 'woo_reorder_tabs', 98 );
function woo_reorder_tabs( $tabs ) {

    $tabs['reviews']['priority'] = 5;            // Reviews first
    $tabs['description']['priority'] = 10;            // Description second
    $tabs['additional_information']['priority'] = 15;    // Additional information third

    return $tabs;
}

Woocommerce Yeni bir tab oluşturmak isterseniz:

add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
    
    // Adds the new tab
    
    $tabs['test_tab'] = array(
        'title'     => __( 'New Product Tab', 'woocommerce' ),
        'priority'     => 50,
        'callback'     => 'woo_new_product_tab_content'
    );

    return $tabs;

}
function woo_new_product_tab_content() {

    // The new tab content

    echo '<h2>New Product Tab</h2>';
    echo '<p>Here's your new product tab.</p>';
    
}

Woocommerce tüm ürünlerin fiyatını SQL ile toplu değiştirme

Binlerce ürününüz var, sayfa sayfa uğraşmak istemiyorsunuz.

Buyrun tek SQL kodu ile tüm ürün satış fiyatlarını değiştirebilirsiniz.

UPDATE wp_postmeta m 
    JOIN wp_posts p ON m.post_id=p.id 
    AND m.meta_key = '_price' 
    AND p.post_type = 'product'
SET m.meta_value = fiyat

Fiyatları içeren tabloları yazdırmak istersek ise:

SELECT p.id, p.post_title, m.meta_key, m.meta_value
FROM wp_posts p
INNER JOIN wp_postmeta m ON p.id=m.post_id 
    AND m.meta_key='_price'

WordPress tüm yorumları SQL ile tek hamlede temizlemek

Baktınız ki 5.000’den fazla yorum var, SQL ile çözeriz dedik.

Sayfa sayfa tek tek uğraşmakla bitmez, hem kullandığınız sistemi, hem de veritabanı yoğunluğunu zorlayabilir.

SQL ile phpmyadmin üzerinden tek hamlede silebilirsiniz.

TRUNCATE `wp_commentmeta`;
TRUNCATE `wp_comments`;

Woocommerce tüm ürünleri tek hamlede nasıl silebilirsiniz?

Woocommerce kullanıyorsanız, WordPress panelinden fazlasına ihtiyaç duyarsınız; özellikle 8-10bin ürün olduğunda can sıkabilir.

ilerleyen zamanda kategori ve brand gibi sistemleri de silmek adına kod güncellemesi ekleyerek kodlamaları güncelleyebiliriz.

Tüm ürünleri silmek için:

DELETE relations.*, taxes.*, terms.*
FROM wp_term_relationships AS relations
INNER JOIN wp_term_taxonomy AS taxes
ON relations.term_taxonomy_id=taxes.term_taxonomy_id
INNER JOIN wp_terms AS terms
ON taxes.term_id=terms.term_id
WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type='product');

DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'product');
DELETE FROM wp_posts WHERE post_type = 'product';

Tüm kategori ve tagleri silmek için:

DELETE a,c FROM wp_terms AS a 
LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id
LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE c.taxonomy = 'product_tag';

DELETE a,c FROM wp_terms AS a
LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id
LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE c.taxonomy = 'product_cat'

Tüm siparişleri silmek için:

DELETE FROM wp_woocommerce_order_itemmeta
DELETE FROM wp_woocommerce_order_items
DELETE FROM wp_posts WHERE post_type = 'shop_order'

Siparişleri çöp kutusuna göndermek için:

update wp_posts set post_status = 'trash' where post_type = 'shop_order';

Ödeme bekleyen siparişleri silmek için:

DELETE FROM bo_posts WHERE post_type = ‘shop_order’ and post_status=’wc-pending’

Ödeme bekleyen siparişleri silmek için:

DELETE FROM bo_posts WHERE post_type = ‘shop_order’ and post_status=’wc-pending’
DELETE FROM bo_woocommerce_order_itemmeta
DELETE FROM bo_woocommerce_order_items
No Comments
Post a comment