Я столкнулся с аналогичной проблемой. В processstartinfo есть поле пароля, уловка заключается в том, что вы должны предоставить пароль в качестве защищенной строки. Таким образом, код будет выглядеть следующим образом:
System.Security.SecureString password = new System.Security.SecureString();
password.AppendChar('c1');
//append the all characters of your password, you could probably use a loop and then,
Process p =new Process();
p.UseShellExecute = false;
p.UserName = Environment.UserName;
p.FileName = file ;
p.Sassword=password;
p.Start();
Следующий код активирует различные методы доставки на основе определенного порогового значения даты.
Вам нужно будет указать в функции свои настройки для:
- Часовой пояс магазина
- Идентификаторы тарифа для двух способов доставки (например, формат flat_rate: 12) )
- Порог даты
Код:
add_filter( 'woocommerce_package_rates', 'free_shipping_disable_flat_rate', 100, 2 );
function free_shipping_disable_flat_rate( $rates, $package ) {
## ----- YOUR SETTINGS HERE BELOW ----- ##
date_default_timezone_set('Europe/London'); // <== Set the time zone (http://php.net/manual/en/timezones.php)
$shippping_rates = ['flat_rate:12', 'flat_rate:14']; // <== Set your 2 shipping methods rate IDs
$defined_date = "2019-03-05"; // <== Set your date threshold
## ------------------------------------- ##
$now_timestamp = strtotime("now"); // Current timestamp in seconds
$date_timestamp = strtotime($defined_date); // Targeted timestamp threshold
// 1. BEFORE the specified date (with 1st shipping method rate ID)
if ( array_key_exists( $shippping_rates[0], $rates ) && $now_timestamp > $date_timestamp ) {
unset($rates[$shippping_rates[0]]); // Remove first shipping method
}
// 2. AFTER the specified date included (with 2nd shipping method rate ID)
elseif ( array_key_exists( $shippping_rates[1], $rates ) && $now_timestamp <= $date_timestamp ) {
unset($rates[$shippping_rates[1]]); // Remove Second shipping method
}
return $rates;
}
Код входит в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Чтобы это работало, вам необходимо обновить кэшированные данные доставки:
blockquote>
1) Сначала вставьте и сохраните этот код в файле function.php.
2) В настройках Доставки войдите в Зону Доставки, затем отключите Способ Доставки и «Сохранить» и повторно включите его и «Сохранить». Вы сделали. .Чтобы получить правильный идентификатор тарифа методов доставки, проверьте код их переключателей с помощью инструментов браузера (на страницах корзины или оформления заказа) и используйте данные атрибута
value
, например: 1116]<input type="radio" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate12" value="flat_rate:12" class="shipping_method" checked="checked">
… так вот
blockquote>flat_rate:12
вvalue="flat_rate:12"