Установить минимальную сумму заказа для поставщика в Dokan - PullRequest
0 голосов
/ 22 апреля 2020

Я хочу иметь минимальную сумму заказа в моем магазине Dokan. Следующий код выполняет работу, но отдельные поставщики не могут выбрать свое собственное минимальное значение.

    //minimum order value

add_action( 'woocommerce_check_cart_items', 'required_min_cart_subtotal_amount' );
function required_min_cart_subtotal_amount() {


// Only run in the Cart or Checkout pages
if( is_cart() || is_checkout() ) {

    // HERE Set minimum cart total amount
    $min_total = 200;


    // Total (before taxes and shipping charges)
    $total = WC()->cart->subtotal;

    // Add an error notice is cart total is less than the minimum required
    if( $total <= $min_total  ) {
        // Display an error message
        wc_add_notice( '<strong>' . sprintf( __("A minimum total purchase amount of %s is required to checkout."), wc_price($min_total) ) . '<strong>', 'error' );
         }
    }
}

Итак, я добавил пользовательское поле на страницу настроек Dokan

    //Extra field on the seller settings and show the value on the store banner -Dokan

// Add an extra field in seller settings

add_filter( 'dokan_settings_form_bottom', 'extra_fields', 10, 2);

function extra_fields( $current_user, $profile_info ){
$minimum_order= isset( $profile_info['minimum_order'] ) ? $profile_info['minimum_order'] : '';
?>
 <div class="gregcustom dokan-form-group">
    <label class="dokan-w3 dokan-control-label" for="setting_address">
        <?php _e( 'Minimum order value', 'dokan' ); ?>
    </label>
    <div class="dokan-w5">
        <input type="number" class="dokan-form-control input-md valid" name="minimum_order" id="reg_minimum_order" value="<?php echo $minimum_order; ?>" />
    </div>
</div>
<?php
}

//save the field value

add_action( 'dokan_store_profile_saved', 'save_extra_fields', 15 );
function save_extra_fields( $store_id ) {
$dokan_settings = dokan_get_store_info($store_id);
if ( isset( $_POST['minimum_order'] ) ) {
    $dokan_settings['minimum_order'] = $_POST['minimum_order'];
}
 update_user_meta( $store_id, 'dokan_profile_settings', $dokan_settings );
}

Теперь я хочу использовать здесь некоторый код,

$ min_total = 200;

, чтобы получить идентификатор продавца из товаров в корзине и использовать его для получения мета пользователя и отображения значения минимального заказа выше. (200) Извините за мой плохой Энгли sh.

...