Здравствуйте!перед строкой с round($custom_price, 2); допишите $custom_price = ($custom_price * 0,03) + $custom_price;
где 0,03 - это 3%
Здравствуйте!
У меня не срабатыет добавление 2% к курсу, могли бы помочь с кодом. Делаю так:
$custom_price = ($custom_price * 0,02) + $custom_price;
round($custom_price, 2); // округляем до сотых, чтобы в regular_price не записывались огромные дроби
Появляется пустой экран, помогите плиз
Чтобы решить проблему нужно понять, что вызывает ошибку.Здравствуйте!
У меня не срабатыет добавление 2% к курсу, могли бы помочь с кодом. Делаю так:
$custom_price = ($custom_price * 0,02) + $custom_price;
round($custom_price, 2); // округляем до сотых, чтобы в regular_price не записывались огромные дроби
Появляется пустой экран, помогите плиз
По ссылке ничего не открывается, т.е. 404 ошибка.funtions.php посмотрите кто может, очень нужна помошь
http://sensis24.ru/functions.txt
По ссылке ничего не открывается, т.е. 404 ошибка.
<?php
// Разные цены для разных товаров
function wc_myprice_product_field() {
woocommerce_wp_text_input( array( 'id' => '_my_price', 'class' => 'wc_input_price short', 'label' => __( 'Стоимость', 'woocommerce' ) ) ); // добавляем поле "Стоимость"
woocommerce_wp_text_input( array( 'id' => '_curency_price', 'class' => 'wc_input_price short', 'label' => __( 'Валюта', 'woocommerce' ) ) ); // добавляем поле "Валюта", где указываем только RUB, USD или EUR, по желанию можно добавить новые значения или переделать это поле в выпадающий список
}
add_action( 'woocommerce_product_options_pricing', 'wc_myprice_product_field' );
function wc_myprice_save_product( $product_id ) {
if ( ( $_POST['_my_price'] ) ) {
if ( is_numeric( $_POST['_my_price'] ) )
update_post_meta( $product_id, '_my_price', $_POST['_my_price'] );
} else delete_post_meta( $product_id, '_my_price' );
if ( ( $_POST['_curency_price'] ) ) {
update_post_meta( $product_id, '_curency_price', $_POST['_curency_price'] );
} else delete_post_meta( $product_id, '_curency_price' );
}
add_action( 'save_post', 'wc_myprice_save_product' );
function wc_myprice_show() {
global $product, $post;
// Ничего не предпринимаем для вариативных товаров
//if ( $product->product_type <> 'variable' ) {
$my_price = get_post_meta( $product->id, '_my_price', true );
$curency = get_post_meta( $product->id, '_curency_price', true );
// woocommerce_price( $RUB )
$blogtime = current_time('mysql'); // записываем текущее время и дату
list( $today_year, $today_month, $today_day, $hour, $minute, $second ) = split( '([^0-9])', $blogtime ); //сохраняем отдельно значения даты, часов, минут и т.д.
if ($hour == 7 || $hour == 12 || $hour == 17 || $hour == 22 || $hour == 1 || $hour == 4) { // указываем на протяжении каких часов мы обновляем (перезаписываем) курс на новый
$data="var=go";
$fp = fsockopen("sensis24.ru", 80, $errno, $errstr, 10); // открыть указанный хост по 80 порту
$out = "POST /currency/get-currency.php HTTP/1.1\n"; // открыть данный скрипт
$out .= "Host: sensis24.ru\n";
$out .= "Referer: sensis24.ru/\n";
$out .= "User-Agent: Opera\n";
$out .= "Content-Type: application/x-www-form-urlencoded\n";
$out .= "Content-Length: ".strlen($data)."\n\n";
$out .= $data."\n\n";
fputs($fp, $out); // отправка данных принимающему скрипту
fclose($fp);
}
// открываем файл с курсом валют и записываем в массив
$lines = file('http://sensis24.ru/currency.txt');
if ($lines) {
// проверяем заполнено ли поле, если да, то умножаем на курс и записываем в $custom_price
if ($curency == "RUB")
{
$custom_price = $my_price;
}
if ($curency == "USD")
{
$custom_price = $my_price * $lines[0];
}
if ($curency == "EUR")
{
$custom_price = $my_price * $lines[1];
}
$custom_price = round($custom_price, 2); // округляем до сотых, чтобы в regular_price не записывались огромные дроби
update_post_meta( $post->ID, '_regular_price', $custom_price );
update_post_meta( $post->ID, '_price', $custom_price );
}
}
add_action( 'woocommerce_get_regular_price', 'wc_myprice_show', 10 );
Чтобы отключить проверку в поле "Валюта" для ввода текста, н-р, USDКод:<?php // Разные цены для разных товаров function wc_myprice_product_field() { woocommerce_wp_text_input( array( 'id' => '_my_price', 'class' => 'wc_input_price short', 'label' => __( 'Стоимость', 'woocommerce' ) ) ); // добавляем поле "Стоимость" woocommerce_wp_text_input( array( 'id' => '_curency_price', 'class' => 'wc_input_price short', 'label' => __( 'Валюта', 'woocommerce' ) ) ); // добавляем поле "Валюта", где указываем только RUB, USD или EUR, по желанию можно добавить новые значения или переделать это поле в выпадающий список } add_action( 'woocommerce_product_options_pricing', 'wc_myprice_product_field' ); function wc_myprice_save_product( $product_id ) { if ( ( $_POST['_my_price'] ) ) { if ( is_numeric( $_POST['_my_price'] ) ) update_post_meta( $product_id, '_my_price', $_POST['_my_price'] ); } else delete_post_meta( $product_id, '_my_price' ); if ( ( $_POST['_curency_price'] ) ) { update_post_meta( $product_id, '_curency_price', $_POST['_curency_price'] ); } else delete_post_meta( $product_id, '_curency_price' ); } add_action( 'save_post', 'wc_myprice_save_product' ); function wc_myprice_show() { global $product, $post; // Ничего не предпринимаем для вариативных товаров //if ( $product->product_type <> 'variable' ) { $my_price = get_post_meta( $product->id, '_my_price', true ); $curency = get_post_meta( $product->id, '_curency_price', true ); // woocommerce_price( $RUB ) $blogtime = current_time('mysql'); // записываем текущее время и дату list( $today_year, $today_month, $today_day, $hour, $minute, $second ) = split( '([^0-9])', $blogtime ); //сохраняем отдельно значения даты, часов, минут и т.д. if ($hour == 7 || $hour == 12 || $hour == 17 || $hour == 22 || $hour == 1 || $hour == 4) { // указываем на протяжении каких часов мы обновляем (перезаписываем) курс на новый $data="var=go"; $fp = fsockopen("sensis24.ru", 80, $errno, $errstr, 10); // открыть указанный хост по 80 порту $out = "POST /currency/get-currency.php HTTP/1.1\n"; // открыть данный скрипт $out .= "Host: sensis24.ru\n"; $out .= "Referer: sensis24.ru/\n"; $out .= "User-Agent: Opera\n"; $out .= "Content-Type: application/x-www-form-urlencoded\n"; $out .= "Content-Length: ".strlen($data)."\n\n"; $out .= $data."\n\n"; fputs($fp, $out); // отправка данных принимающему скрипту fclose($fp); } // открываем файл с курсом валют и записываем в массив $lines = file('http://sensis24.ru/currency.txt'); if ($lines) { // проверяем заполнено ли поле, если да, то умножаем на курс и записываем в $custom_price if ($curency == "RUB") { $custom_price = $my_price; } if ($curency == "USD") { $custom_price = $my_price * $lines[0]; } if ($curency == "EUR") { $custom_price = $my_price * $lines[1]; } $custom_price = round($custom_price, 2); // округляем до сотых, чтобы в regular_price не записывались огромные дроби update_post_meta( $post->ID, '_regular_price', $custom_price ); update_post_meta( $post->ID, '_price', $custom_price ); } } add_action( 'woocommerce_get_regular_price', 'wc_myprice_show', 10 );
woocommerce_wp_text_input( array( 'id' => '_curency_price', 'class' => 'wc_input_price short', 'label' => __( 'Валюта', 'woocommerce' ) ) ); // добавляем поле "Валюта", где указываем только RUB, USD или EUR, по желанию можно добавить новые значения или переделать это поле в выпадающий список
woocommerce_wp_text_input( array( 'id' => '_curency_price', 'class' => 'wc_input_curency_price short', 'label' => __( 'Валюта', 'woocommerce' ) ) ); // добавляем поле "Валюта", где указываем только RUB, USD или EUR, по желанию можно добавить новые значения или переделать это поле в выпадающий список
Спасибо за оперативный ответ!Чтобы отключить проверку в поле "Валюта" для ввода текста, н-р, USD
Замените
наPHP:woocommerce_wp_text_input( array( 'id' => '_curency_price', 'class' => 'wc_input_price short', 'label' => __( 'Валюта', 'woocommerce' ) ) ); // добавляем поле "Валюта", где указываем только RUB, USD или EUR, по желанию можно добавить новые значения или переделать это поле в выпадающий список
Т.е проверка на соответствие формату цены была по передаваемому классу 'wc_input_price'.PHP:woocommerce_wp_text_input( array( 'id' => '_curency_price', 'class' => 'wc_input_curency_price short', 'label' => __( 'Валюта', 'woocommerce' ) ) ); // добавляем поле "Валюта", где указываем только RUB, USD или EUR, по желанию можно добавить новые значения или переделать это поле в выпадающий список
Сейчас стало возможным ввести валюту например USD.Спасибо за оперативный ответ!
Сейчас стало возможным ввести валюту например USD.
Но товар не отбражается. И категории тоже все кривые.Что можно попробывать дальше?
http://sensis24.ru/catalog/
Меня еще очень интересует возможность импорта через wp all import
может кто за деньги переделает этот скрипт?