مشکل در تعیین حداقل مبلغ سفارش در ووکامرس

mgt1234

تازه وارد
سلام

من با استفاده از این کد میخوام حداقل مبلغ سفارش تعیین کنم که خریدار نتونه کمتر از این مبلغ رو سفارش بده :

add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );function wc_minimum_order_amount() {global $woocommerce;$minimum = 20000;if ( $woocommerce->cart->total() < $minimum ) {$woocommerce->add_error( sprintf( 'برای تکمیل سفارش شما باید حداقل %s خرید کنید' , $minimum ) );}}اما وقتی این کد رو توی فایل functions.php قالب قرار میدم، موقع سفارش این ارور نمایش داده میشه :

Fatal error: Call to undefined method WC_Cart::total() in /home//public_html/wp-content/themes/ghaleb/functions.php on line 2535مشکل چیه؟

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );

function wc_minimum_order_amount() {

$minimum = 20000; //rial

$minimum = strtolower(get_woocommerce_currency()) == 'irt' ? ($minimum/10) .' تومان ' : $minimum. ' ریال ';

if ( intval(WC()->cart->total) < intval($minimum) ) {

wc_add_notice( sprintf( 'برای تکمیل سفارش شما باید حداقل %s خرید کنید' , $minimum ) , 'error' );

}

}


 
آخرین ویرایش توسط مدیر:

mgt1234

تازه وارد
add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );function wc_minimum_order_amount() {$minimum = 20000; //rial$minimum = strtolower(get_woocommerce_currency()) == 'irt' ? ($minimum/10) .' تومان ' : $minimum. ' ریال ';if ( intval(WC()->cart->total) < intval($minimum) ) {wc_add_notice( sprintf( 'برای تکمیل سفارش شما باید حداقل %s خرید کنید' , $minimum ) , 'error' );}}
این کدی که دادین کلا هیچ عملکردی نداره، یعنی الان راحت میشه سفارش داد و هیچ محدودیتی هم وجود نداره!

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
دوست عزیز تست کردم و مشکلی نداره .

اون مبلغی که به جای 20000 وارد میکنید رو به ریال وارد کنید . یعنی مثلا اگه میخواید کاربر نتونه کمتر از 2 هزار تومن خرید کنه وارد کنید 20000

 

mgt1234

تازه وارد
دوست عزیز تست کردم و مشکلی نداره .

اون مبلغی که به جای 20000 وارد میکنید رو به ریال وارد کنید . یعنی مثلا اگه میخواید کاربر نتونه کمتر از 2 هزار تومن خرید کنه وارد کنید 20000
من هیچ تغییری توی قیمت ندادم همین کدی که دادید رو عیناً گذاشتم داخل فانکشن ولی کار نکرد و راحتت سفارش با قیمت 13 تومن ثبت میشه...

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
13 هزار تومن ؟

خب 13 هزار تومن از 2 هزار تومن بیشتره دیگه میتونه ثبت کنه . شما اگه میخوای از 20 هزار تومن کمتر نتونه اون عدد رو توی کد من بکن 200000

 

mgt1234

تازه وارد
13 هزار تومن ؟

خب 13 هزار تومن از 2 هزار تومن بیشتره دیگه میتونه ثبت کنه . شما اگه میخوای از 20 هزار تومن کمتر نتونه اون عدد رو توی کد من بکن 200000
13 تا تک تومنی عزیز

صبر کنید من الان یه مبلغ دیگه تست میکنم :)

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
این خط رو پاک کن تست بگیر :

کد:
$minimum = strtolower(get_woocommerce_currency()) == 'irt' ? ($minimum/10) .' تومان ' : $minimum. ' ریال ';
 

mgt1234

تازه وارد
این خط رو پاک کن تست بگیر :

$minimum = strtolower(get_woocommerce_currency()) == 'irt' ? ($minimum/10) .' تومان ' : $minimum. ' ریال ';
درست شد عزیز مشکل از کدهای قبلی قالب بود که درستش کردم.

عذر میخوام

خیلی ممنون از راهنماییتون :63:

 

98cell.ir

کاربر عضو
دادا من کدو اینجای Fuction گذاشتم،درسته؟

یا باید جای دیگه ای بذارم یعنی بین کدهای دیگه ای :

    /*
     * This theme supports all available post formats by default.
     * See
     */
    add_theme_support( 'post-formats', array(
        'aside', 'image', 'video', 'audio', 'quote', 'link', 'gallery',
    ) );

    global $wp_version;
    if ( version_compare( $wp_version, '3.4', '>=' ) ) {
        add_theme_support( 'custom-background' );
    }

    // This theme uses wp_nav_menu() in one location.

    register_nav_menus( array(
        'primary'   => __( 'TM Header Navigation', 'templatemela' ),
        'header-menu' => __('TM Header Top Links', 'templatemela'),
        'footer-menu' => __('TM Footer Navigation', 'templatemela'),
    ) );

    /*
     * This theme uses a custom image size for featured images, displayed on
     * "standard" posts and pages.
     */
    add_theme_support( 'post-thumbnails' );
    set_post_thumbnail_size( 604, 270, true );

    // This theme uses its own gallery styles.
    add_filter( 'use_default_gallery_style', '__return_false' );
}
add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );

function wc_minimum_order_amount() {


$minimum = 120000; //rial


$minimum = strtolower(get_woocommerce_currency()) == 'irt' ? ($minimum/10) .' تومان ' : $minimum. ' ریال ';

if ( intval(WC()->cart->total) < intval($minimum) ) {

wc_add_notice( sprintf( 'برای تکمیل سفارش شما باید حداقل %s خرید کنید --> منظور قیمت فقط ' , $minimum ) , 'error' );

}

}
add_action( 'after_setup_theme', 'templatemela_setup' );

/*
 * Makes Templatemela available for translation.
 *
 * Translations can be added to the /languages/ directory.
 * If you're building a theme based on Templatemela, use a find and
 * replace to change 'templatemela' to the name of your theme in all
 * template files.
 */
function templatemela_textdomain_setup() {    
    load_theme_textdomain( 'templatemela', get_template_directory() . '/langg' );]

 
آخرین ویرایش توسط مدیر:

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
الان گیر کجاست ؟

کار نمیکنه مگه

 

98cell.ir

کاربر عضو
نه کار میکنه

اما گفتم شاید جای اشتباهی گذاشتمش

احساس میکنم سرعت سایت یکم کم شده

www.5.seryaliha.ir

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
نه دوست عزیز ! .فقط موقعی که هوک woocommerce_checkout_process ران بشه فقط لود میشه .

 
آخرین ویرایش توسط مدیر:

98cell.ir

کاربر عضو
سلام

ی مشکل داره این کد

اونم اینه ک مبلغو با هزینه ارسال حساب میکنه

فرضا ما گذاشتیم 12000 تومان

مشتری میاد 6000 تومان محصول ثبت میکنه 6000 تومان پول پست بعدم خرید میکنه و خریدشم ثبت میشه

البته میشه ما اون 12.000 تومانو 18.000 تومان بگیریم و مسئله حل بشه اما خب بعضی جاها جواب نمیده

گفتم در میون بذارم :63:

 

mamaly_2267

تازه وارد
سلام

ی مشکل داره این کد

اونم اینه ک مبلغو با هزینه ارسال حساب میکنه

فرضا ما گذاشتیم 12000 تومان

مشتری میاد 6000 تومان محصول ثبت میکنه 6000 تومان پول پست بعدم خرید میکنه و خریدشم ثبت میشه

البته میشه ما اون 12.000 تومانو 18.000 تومان بگیریم و مسئله حل بشه اما خب بعضی جاها جواب نمیده

گفتم در میون بذارم :63:
سلام

میتونید از این کد استفاده کنید

به جای total از subtotal استفاده کنید.

کد:
/* start minimum checkout */add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );function wc_minimum_order_amount() {$minimum = 1000000; //rial$minimum = strtolower(get_woocommerce_currency()) == 'irt' ? ($minimum/10) .' تومان ' : $minimum. ' ریال ';if ( intval(WC()->cart->subtotal) < intval($minimum) ) {wc_add_notice( sprintf( 'برای تکمیل سفارش شما باید حداقل %s خرید کنید' , $minimum ) , 'error' );}}/* end minimum checkout */
 
بالا