×

РАБОТНО ВРЕМЕ

Пон. - Пет. - 9:00 - 18:00
Събота и Неделя само с уговорени срещи!

WORK TIME

Mon-Fri 9:00AM – 6:00AM
Saturday and Sunday only with appointments!

ТЕЛЕФОН: 0888 898 797, EMAIL: office@ait-webdesign.com, SKYPE: ait.solutions
  • ПОДДРЪЖКА

AIT WEB DESIGN - изработка на сайт и СЕО оптимизация

Изработка на сайт, уеб дизайн, електронни магазини, софтуер по поръчка, лого дизайн, визитни картички, банери, каталози и графичен дизайн.

+359 888 898 797
Email: office@ait-webdesign.com

AIT Web Design
Хасково, ул. Хан Аспарух 9 - 11

  • НАЧАЛО
  • УСЛУГИ
    • УЕБ САЙТ ИЗРАБОТВАНЕ
    • ПОДДРЪЖКА НА WORDPRESS САЙТ
    • ЕЛЕКТРОННИ МАГАЗИНИ
    • ХОСТИНГ И ДОМЕЙН
    • ПРЕВОД НА УЕБ СТРАНИЦИ
    • ИЗРАБОТКА НА ЛОГО
    • ОПТИМИЗАЦИЯ НА САЙТ
    • СОФТУЕР ПО ПОРЪЧКА
    • БЕЗПЛАТЕН САЙТ
  • ЗА НАС
  • ПОРТФОЛИО
  • РЕФЕРЕНЦИИ
  • БЛОГ
  • КОНТАКТИ
НАПРАВЕТЕЗАПИТВАНЕ
  • Home
  • Код оптимизация
  • Archive from category "Код оптимизация"
16.05.2025

Category: Код оптимизация

WordPress полезни модули, стратегии и оптимизация за фирмен сайт

  • 0
afilipov
Sunday, 12 July 2020 / Published in WordPress Модули, Код оптимизация

ЗАЩИТА

1. Модул за защита – iThemes Security (formerly Better WP Security)
2. Модул за защита от ботове и ненужен трафик – WordPress Block and Stop Bad Bots Plugin StopBadBots
3. Модул за смяна на адреса на адрминистрацията в WordPress – WPS Hide Login

СЕО

4. Модул за редирект 301 на старите адреси на уеб сайта, към новите страници Simple 301 Redirects (ако правите нова версия на сайта)
5. SEO модул Yoast SEO (перфектната СЕО приставка)

ОПТИМИЗАЦИЯ НА КОДА И СКОРОСТТА НА САЙТА

5. Модул за кеширане  – WP Rocket (най-добрия за мен)
6. Модул за минимизиране на js, css и html скриптовете  – Autoptimize

Модул за защита и сигурност в WordPress

  • 0
afilipov
Saturday, 24 February 2018 / Published in Wordpress, WordPress Модули, Код оптимизация
Модул за защита и сигурност в WordPress

Спрете Libwww-perl Access!

  • 0
afilipov
Wednesday, 09 August 2017 / Published in SEO Оптимизация, Код оптимизация, Трикове
Спрете Libwww-perl Access!

WordPress и Https

  • 0
afilipov
Friday, 31 March 2017 / Published in Wordpress, Код оптимизация
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Как да изтрием поленце от checkout формата на Woocommerce

  • 0
afilipov
Friday, 14 October 2016 / Published in Wordpress, Код оптимизация, Трикове
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
 
function custom_override_checkout_fields( $fields ) {

    unset($fields['billing']['billing_first_name']);
    unset($fields['billing']['billing_last_name']);
    unset($fields['billing']['billing_company']);
    unset($fields['billing']['billing_address_1']);
    unset($fields['billing']['billing_address_2']);
    unset($fields['billing']['billing_city']);
    unset($fields['billing']['billing_postcode']);
    unset($fields['billing']['billing_country']);
    unset($fields['billing']['billing_state']);
    unset($fields['billing']['billing_phone']);
    unset($fields['order']['order_comments']);
    unset($fields['billing']['billing_address_2']);
    unset($fields['billing']['billing_postcode']);
    unset($fields['billing']['billing_company']);
    unset($fields['billing']['billing_last_name']);
    unset($fields['billing']['billing_email']);
    unset($fields['billing']['billing_city']);

    return $fields;
}

Как да променим SKU label-а във Woocommerce към Product Code

  • 0
afilipov
Friday, 30 September 2016 / Published in Wordpress, Код оптимизация
function translate_woocommerce($translation, $text, $domain) {
    if ($domain == 'woocommerce') {
        switch ($text) {
            case 'SKU':
                $translation = 'Product Code';
                break;
            case 'SKU:':
                $translation = 'Product Code:';
                break;
        }
    }
    return $translation;
}

add_filter('gettext', 'translate_woocommerce', 10, 3);

 

Източник: https://gist.github.com/dannyconnolly/da6f1a2d95dc826ccdcd

Частни ключове и сертификати за виртуален ПОС терминал към БОРИКА

  • 0
afilipov
Wednesday, 31 August 2016 / Published in Код оптимизация

Виртуалните ПОС терминали към авторизационната системата на БОРИКА осъществяват обмена на данни за транзакциите посредством цифрово подписани съобщения. За тази цел – виртуалните терминали изискват наличие на частни ключове и цифрови сертификати. Използваният криптографски алгоритъм е RSA, а хеширането – SHA-1. Частните ключове се генерират от клиента, след което с тях се създават заявки за сертификати, които се изпращат на обслужващата банка. Генерирането на частните ключове и заявките за сертификати може да стане с произволен инструмент- важно е да се спази изискването за формат и големина на ключа.

Един от най-популярните безплатни инструменти който може да генерира всички необходимо за реализацията на криптографските операции в Microsoft® Windows среда е Win32 OpenSSL:

http://haralanov.com

Изглед на OpenSSL в Microsoft® Windows среда

Light версията е достатъчна за генерирането на частните ключове, създаването на заявките за сертификати и направата на браузърен сертификат описани по-долу. 32-битовата версия работи добре и на 64-битови платформи. Има удобен инсталатор.

Изисква се наличие на Microsoft Visual C++ 2008 Redistributable Package.

Win 32 ОpenSSL – Връзка към сайта с всички актуални версии.

1. Генериране на три частни ключа

Изпълняват се следните команди в Win32 Openssl среда:

  1. genrsa -out privatekeyreal.key -des3 1024
    • въвежда се парола (минимум четири символа)
  2. genrsa -out privatekeytest.key -des3 1024
    • въвежда се парола (минимум четири символа)
  3. genrsa -out privatekeyetlog.key -des3 1024
    • въвежда се парола (минимум четири символа)

В резултат от изпълнението трите команди – в работната директория на OpenSSL Win32 Toolkit се появяват три файла с разширениe *.key:

  • privatekeyreal.key – частен ключ за виртуален ПОС терминал в реална система
  • privatekeytest.key – частен ключ за виртуален ПОС терминал в тестова система
  • privatekeyetlog.key – частен ключ за система за наблюдение на транзакции на виртуален ПОС терминал

Създадените два частни ключа privatekeyreal.key и privatekeytest.key трябва да се запишат на уеб сървъра.
Задължително да се защитят, така че да бъдат достъпни само за скрипта, който ще ги използва- програмния код на виртуалният пос терминал.

Най-лесният начин за защита е да се запишат двата ключа в директория различна от публично достъпната /public_html

В случай, че виртуалният ПОС терминал ще обслужва плащания за самолетни билети, коли под наем (rent-a-car) или резервации чрез системата на
amadeus България – e-Power Amadeus Internet Booking Engine, частният ключ трябва да бъдат се именува epowerPRIVATE.key

2. Генериране на три заявки за сертификати

  1. req -new -key privatekeyreal.key -out sitenamereal.csr
    • въвежда се паролата зададена при генерирането на частният ключ
  2. req -new -key privatekeytest.key -out sitenametest.csr
    • въвежда се паролата зададена при генерирането на частният ключ
  3. req -new -key privatekeyetlog.key -out sitenameetlog.csr
    • въвежда се паролата зададена при генерирането на частният ключ

3. Изпращане на заявките за сертификати на обслужващата банка за подпис

Трите заявки за сертификати от т.2 се изпращат на обслужващата банка за подпис:

  • sitenamereal.csr – заявка за сертификат за реалната система
  • sitenametest.csr – заявка за сертификат за тестовата система
  • sitenameetlog.csr – заявка за сертификат за системата eTlog

3а. В отговор на изпратените заявки, банката трябва да върне три подписани сертификата:

  • sitenamereal.cеr – сертификат за реалната система
  • sitenametest.cеr – сертификат за тестовата система
  • sitenameetlog.cеr – сертификат за системата eTlog

4. Сертификат за браузър за наблюдение на транзакции

pkcs12 -export -inkey privatekeyetlog.key -in sitenameetlog.cer -out sitenameetlog.p12

Получният файл sitenameetlog.p12 се импортира в браузър на клиента, който ще наблюдава транзакции чрез eltog система.

Имената на файловете в примерите по-горе не са задължителни. Разширенията на файловете- също, но от гледна точка на удобството е хубаво да се указват по описания в примерите начин.

След успешно изпълнение на точки от 1 до 4 може да се пристъпи към внедряването на виртуалният ПОС терминал в уеб сайта за който е предназначен.

Документацията с подробно описание на виртуалният ПОС терминал към авторизационната система на БОРИКА може да бъде получена от обслужващата банка, която предоставя виртуалният ПОС терминал.
В общия случай – банките предоставят упътването след сключване на договор.

 

 

 

Източник: http://haralanov.com/techno/payments/34-chastni-kluchove-i-sertifikati-za-virtualen-pos-terminal-borika#частен-ключ-за-виртуален-пос-терминал-в-тестовата-система-на-борика

WordPress, Woocommerce, метод на плащане PayPal и BGN FIX

  • 3
afilipov
Wednesday, 06 July 2016 / Published in Wordpress, Код оптимизация
// allow BGN for WooCommerce and PayPal
add_filter( 'woocommerce_currencies', 'add_bgn_currency' );

function add_bgn_currency( $currencies ) {
 $currencies['BGN'] = __( 'Bulgarian Lev (лв.)', 'woocommerce' );
 return $currencies;
}

add_filter('woocommerce_currency_symbol', 'add_bgn_currency_symbol', 10, 2);

function add_bgn_currency_symbol( $currency_symbol, $currency ) {
 switch( $currency ) {
 case 'BGN': $currency_symbol = 'лв.'; break;
 }
 return $currency_symbol;
}

// allow BGN for WooCommerce and PayPal
add_filter( 'woocommerce_paypal_supported_currencies', 'add_bgn_paypal_valid_currency' );     
    function add_bgn_paypal_valid_currency( $currencies ) {  
     array_push ( $currencies , 'BGN' );
     return $currencies;  
    } 

// Convert BGN to EUR for PayPal payments
add_filter('woocommerce_paypal_args', 'convert_bgn_to_eur');
function convert_bgn_to_eur($paypal_args){
	if ( $paypal_args['currency_code'] == 'BGN'){
		$convert_rate = 1.955; //set the converting rate
		$paypal_args['currency_code'] = 'EUR'; //change BGN to EUR
		$i = 1;

		while (isset($paypal_args['amount_' . $i])) {
			$paypal_args['amount_' . $i] = round( $paypal_args['amount_' . $i] / $convert_rate, 2);
			++$i;
		}
		
		if ( $paypal_args['discount_amount_cart'] > 0 ) {
                $paypal_args['discount_amount_cart'] = round( $paypal_args['discount_amount_cart'] / $convert_rate, 2);
                }
                }

                return $paypal_args;
}

Как сами да си създадем Widget в WordPress

  • 0
afilipov
Tuesday, 05 July 2016 / Published in Wordpress, Код оптимизация

vv-1

Отворете functions.php на Вашата тема и поставете следния код:

require get_template_directory() . '/widgets/agenda.php';

agenda.php

<?php
class agenda_widget extends WP_Widget {

	function agenda_widget() {
		parent::WP_Widget(false, $name = 'Get posts from different post types');
	}

	function widget($args, $instance){
		extract( $args );
		$title = apply_filters('widget_title', $instance['title']);
		$posttype = $instance['posttype'] ? $instance['posttype'] : 'post';
		
		$orderby = $instance['orderby'] ? $instance['orderby'] : 'ID';
		$orderbyad = $instance['orderbyad'] ? $instance['orderbyad'] : 'ASC';
		
		
		$limit = $instance['limit'] ? $instance['limit'] : 5;
		$bottom = $instance['bottom'];

		$args = array( 'posts_per_page' => $limit, 'orderby' => $orderby, 'order'=>$orderbyad, 'post_type' => $posttype);
		query_posts($args);
		$trainingen = get_posts( $args );

		?>
		<?php echo $before_widget; ?>
		<div class="widget-agenda">
			<h3><?php echo $title ?></h3>
			<ul>
			<?php foreach ($trainingen as $training): ?>
				<?php if($training->dates) $dates = json_decode($training->dates) ?>
				<li><a href="<?php echo get_permalink($training->ID)?>"><?php //echo date_i18n(get_option("date_format"), strtotime($dates[0])) ?><?php _e($training->post_title); ?></a></li>
			<?php endforeach; ?>
			</ul>
		</div>
		<?php echo $after_widget; ?>
		<?php
	}

	function update($new_instance, $old_instance){
		$instance = $old_instance;
		$instance['title'] = strip_tags($new_instance['title']);
		$instance['posttype'] = strip_tags($new_instance['posttype']);
		$instance['orderby'] = strip_tags($new_instance['orderby']);
		$instance['orderbyad'] = strip_tags($new_instance['orderbyad']);
		$instance['limit'] = strip_tags($new_instance['limit']);
		
		return $instance;
	}

	function form($instance){
		$title = esc_attr($instance['title']);
		$posttype = esc_attr($instance['posttype']);
		$orderby = esc_attr($instance['orderby']);
		$orderbyad = esc_attr($instance['orderbyad']);
		$limit = esc_attr($instance['limit']);
		
		?>
		 <p>
			<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> 
			<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" />
		</p>
        
        <p>
			<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Select Post Type:'); ?></label> 
			<?
           		$args = array(
   					'public'   => true,
   					'_builtin' => false
				);

				$output = 'names'; // names or objects, note names is the default
				$operator = 'and'; // 'and' or 'or'

				$post_types = get_post_types( $args, $output, $operator ); 

				?>
				<select id="<?php echo $this->get_field_id('posttype'); ?>" name="<?php echo $this->get_field_name('posttype'); ?>">
                <option value="post" <? if ($posttype == 'post'){ ?>selected<? } ?>>post</option>
				<?
				foreach ( $post_types  as $post_type ) 
				{
   					?>
                     <option value="<?=$post_type;?>" <? if ($posttype == $post_type){ ?>selected<? } ?>><?=$post_type;?></option>
                    <?
				}
				?>
            	</select></br>
                <label for="<?php echo $this->get_field_id('orderby'); ?>"><?php _e('Order by'); ?></label>: <select id="<?php echo $this->get_field_id('orderby'); ?>" name="<?php echo $this->get_field_name('orderby'); ?>">
  							<option value="ID" <? if ($orderby == 'ID'){ ?>selected<? } ?>>ID</option>
						</select></br>
                <label for="<?php echo $this->get_field_id('orderbyad'); ?>"><?php _e('Order'); ?></label>: <select id="<?php echo $this->get_field_id('orderbyad'); ?>" name="<?php echo $this->get_field_name('orderbyad'); ?>">
  							<option value="ASC" <? if ($orderbyad == 'ASC'){ ?>selected<? } ?>>ASC</option>
                            <option value="DESC" <? if ($orderbyad == 'DESC'){ ?>selected<? } ?>>DESC</option>
					  </select>      
                        
		</p>
        
		<p>
			<label for="<?php echo $this->get_field_id('limit'); ?>"><?php _e('Limit'); ?></label> 
			<input class="tiny-text" id="<?php echo $this->get_field_id('limit'); ?>" name="<?php echo $this->get_field_name('limit'); ?>" type="number" value="<?php echo $limit; ?>" />
		</p>
		<?php 
	}


}

add_action('widgets_init', create_function('', 'return register_widget("agenda_widget");'));

?>

Как да създадем Theme Option страница в WordPress администрацията

  • 0
afilipov
Monday, 04 July 2016 / Published in Wordpress, Код оптимизация

Резултата от скрипта ще бъде следния:

Untitled-1

Влезте в директорията на Вашата тема и поставете кода във файла functions.php:

require get_template_directory() . '/theme-options.php';

theme-options.php

<?php

$themename = "Theme Option";
$shortname = "nt";

$categories = get_categories('hide_empty=0&orderby=name');
$wp_cats = array();
foreach ($categories as $category_list ) {
       $wp_cats[$category_list->cat_ID] = $category_list->cat_name;
}
array_unshift($wp_cats, "Choose a category"); 

$options = array (
array( "name" => $themename." Options",
	"type" => "title"),
array( "name" => "General",
	"type" => "section"),
array( "type" => "open"),
array( "name" => "Logo URL",
	"desc" => "Enter the link to your logo image",
	"id" => $shortname."_logo",
	"type" => "text",
	"std" => ""),
array( "name" => "Portfolio",
	"desc" => "Check this option to turn on Portfolio Type",
	"id" => $shortname."_portfolio",
	"type" => "checkbox",
	"std" => ""),
array( "name" => "Clone post",
	"desc" => "Check this option to turn on/off Clone Post option",
	"id" => $shortname."_clonepost",
	"type" => "checkbox",
	"std" => ""),	
array( "name" => "Google Fonts",
	"desc" => "Activate Google fonts integration",
	"id" => $shortname."_googlefonts",
	"type" => "checkbox",
	"std" => ""),	
array( "type" => "close"),
array( "name" => "Theme Styles",
	"type" => "section"),
array( "type" => "open"),
array( "name" => "Colour Scheme",
	"desc" => "Select the colour scheme for the theme",
	"id" => $shortname."_color_scheme",
	"type" => "select",
	"options" => array("blue", "red", "green"),
	"std" => "blue"),
array( "name" => "Colour Scheme Panel",
	"desc" => "Select the colour scheme for Panel",
	"id" => $shortname."_color_scheme_admin",
	"type" => "select",
	"options" => array("white", "black"),
	"std" => "white"),
array( "name" => "Background color",
	"desc" => "",
	"id" => $shortname."_backgroundcolor",
	"type" => "text",
	"std" => ""),
array( "name" => "Menu color",
	"desc" => "",
	"id" => $shortname."_menucolor",
	"type" => "text",
	"std" => ""),
array( "name" => "Menu color hover",
	"desc" => "",
	"id" => $shortname."_menucolorhover",
	"type" => "text",
	"std" => ""),
array( "name" => "Custom CSS",
	"desc" => "Want to add any custom CSS code? Put in here, and the rest is taken care of. This overrides any other stylesheets. eg: a.button{color:green}",
	"id" => $shortname."_custom_css",
	"type" => "textarea",
	"std" => ""),		
array( "type" => "close"),
array( "name" => "Homepage",
	"type" => "section"),
array( "type" => "open"),
array( "name" => "Homepage header image",
	"desc" => "Enter the link to an image used for the homepage header.",
	"id" => $shortname."_header_img",
	"type" => "text",
	"std" => ""),
array( "name" => "Homepage featured category",
	"desc" => "Choose a category from which featured posts are drawn",
	"id" => $shortname."_feat_cat",
	"type" => "select",
	"options" => $wp_cats,
	"std" => "Choose a category"),
array( "type" => "close"),
array( "name" => "Footer",
	"type" => "section"),
array( "type" => "open"),
array( "name" => "Position Fixed",
	"desc" => "Check this option to make footer position fixed",
	"id" => $shortname."_footerfixed",
	"type" => "checkbox",
	"std" => ""),	
array( "name" => "Footer copyright text",
	"desc" => "Enter text used in the right side of the footer. It can be HTML",
	"id" => $shortname."_footer_text",
	"type" => "textarea",
	"std" => ""),
array( "name" => "Google Analytics Code",
	"desc" => "You can paste your Google Analytics or other tracking code in this box. This will be automatically added to the footer.",
	"id" => $shortname."_ga_code",
	"type" => "textarea",
	"std" => ""),	
array( "name" => "Custom Favicon",
	"desc" => "A favicon is a 16x16 pixel icon that represents your site; paste the URL to a .ico image that you want to use as the image",
	"id" => $shortname."_favicon",
	"type" => "text",
	"std" => get_bloginfo('url') ."/favicon.ico"),	
array( "name" => "Feedburner URL",
	"desc" => "Feedburner is a Google service that takes care of your RSS feed. Paste your Feedburner URL here to let readers see it in your website",
	"id" => $shortname."_feedburner",
	"type" => "text",
	"std" => get_bloginfo('rss2_url')),
array( "type" => "close")
);

function getmoonstyles(){
	?>
	<style >
	<?
	if (get_option( 'nt_footerfixed' ))
	{
	?>
	.site-footer {
		position:fixed;
		z-index: 9999;
	}
	.site-content {
    margin-bottom: 60px;
    margin-top: 72px;
}
    <?
	}else{
		?>.site-footer {
		position: inherit !important;
	}
	
	.site-content {
    margin-top: 72px;
}
	
		<?
		}
	?>
	</style>
	<?
}


function mytheme_add_admin() {
 
global $themename, $shortname, $options;
 
if ( $_GET['page'] == basename(__FILE__) ) {
 
	if ( 'save' == $_REQUEST['action'] ) {
 
		foreach ($options as $value) {
		update_option( $value['id'], $_REQUEST[ $value['id'] ] ); }
 
foreach ($options as $value) {
	if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ]  ); } else { delete_option( $value['id'] ); } }
 
	header("Location: admin.php?page=theme-options.php&saved=true");
die;
 
} 
else if( 'reset' == $_REQUEST['action'] ) {
 
	foreach ($options as $value) {
		delete_option( $value['id'] ); }
 
	header("Location: admin.php?page=theme-options.php&reset=true");
die;
 
}
}
 
add_menu_page($themename, $themename, 'administrator', basename(__FILE__), 'mytheme_admin');
}

function mytheme_add_init() {

$file_dir=get_bloginfo('template_directory');
//if (get_option( 'nt_color_scheme_admin' ) == 'white')
//{
	wp_enqueue_style("functions", $file_dir."/functions/functions_wt.css", false, "1.0", "all");
	$logostyle = 'logo_wt.png';
//}else{
//	wp_enqueue_style("functions", $file_dir."/functions/functions_bk.css", false, "1.0", "all");
//	$logostyle = 'logo_bk.png';
//	}

wp_enqueue_script("rm_script", $file_dir."/functions/rm_script.js", false, "1.0");

}
function mytheme_admin() {
 
global $themename, $shortname, $options;
$i=0;
 
if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings saved.</strong></p></div>';
if ( $_REQUEST['reset'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings reset.</strong></p></div>';
 
 
// if (get_option( 'nt_color_scheme_admin' ) == 'white')
//{
	$logostyle = 'logo_wt.png';
//}else{
//	$logostyle = 'logo_bk.png';
//	}
 
 
 
?>
<div class="wrap rm_wrap">

<div class="themelogo"><img src="<?=get_template_directory_uri() . '/functions/images/'.$logostyle;?>"></div>

<h2 class="zsd"><?php echo $themename; ?></h2>
 
<div class="rm_opts">
<form method="post">
<?php foreach ($options as $value) {
switch ( $value['type'] ) {
 
case "open":
?>
 
<?php break;
 
case "close":
?>
 
</div>
</div>
<br />

 
<?php break;
 
case "title":
?>
<div class="zsd2">To easily use the <?php echo $themename;?> theme, you can use the menu below.</div>
<?php break;
 
case 'text':
?>

<div class="rm_input rm_text">
	<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
 	<input name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" value="<?php if ( get_settings( $value['id'] ) != "") { echo stripslashes(get_settings( $value['id'])  ); } else { echo $value['std']; } ?>" />
 <small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
 
 </div>
<?php
break;
 
case 'textarea':
?>

<div class="rm_input rm_textarea">
	<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
 	<textarea name="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" cols="" rows=""><?php if ( get_settings( $value['id'] ) != "") { echo stripslashes(get_settings( $value['id']) ); } else { echo $value['std']; } ?></textarea>
 <small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
 
 </div>
  
<?php
break;
 
case 'select':
?>

<div class="rm_input rm_select">
	<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
	
<select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
<?php foreach ($value['options'] as $option) { ?>
		<option <?php if (get_settings( $value['id'] ) == $option) { echo 'selected="selected"'; } ?>><?php echo $option; ?></option><?php } ?>
</select>

	<small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
</div>
<?php
break;
 
case "checkbox":
?>

<div class="rm_input rm_checkbox">
	<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
	
<?php if(get_option($value['id'])){ $checked = "checked=\"checked\""; }else{ $checked = "";} ?>
<input type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> />


	<small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
 </div>
<?php break; 
case "section":

$i++;

?>

<div class="rm_section">
<div class="rm_title"><h3><img src="<?php bloginfo('template_directory')?>/functions/images/trans.png" class="inactive" alt="""><?php echo $value['name']; ?></h3><span class="submit"><input name="save<?php echo $i; ?>" type="submit" value="Save changes" />
</span><div class="clearfix"></div></div>
<div class="rm_options" style=" display:none;">
<?php break;
}
}
?>
<input type="hidden" name="action" value="save" />
</form>
<form method="post">
<p class="submit">
<input name="reset" type="submit" value="Reset Theme Options" />
<input type="hidden" name="action" value="reset" />
</p>
</form>
<div class="fns">Panel & Theme creation by <a href="http://atanasfilipov.com/" target="_blank">Atanasfilipov.com</a></div>
 </div> 
<?php
}
?>


<?php
add_action('admin_init', 'mytheme_add_init');
add_action('admin_menu', 'mytheme_add_admin');

?>

Създайте папка functions, и в нея създайте следните файлове: functions_bk.css, functions_wt.css, rm_script.js:

functions_bk.css

.rm_wrap, .rm_wrap h2, .rm_wrap p, .rm_options {
    background: #000000;
    color: #ffffff;
    padding: 20px;
}
.rm_wrap h2 {
    font-size: 35px;
}
.rm_wrap {
    width: 80%;
    margin-left: auto;
    margin-right: auto;
}
.fns {
    font-size: 10px;
    text-align: center;
}
.fns a {
    color: #678fbf;
    text-decoration: none;
}
.fns a:hover {
	text-decoration: underline;
}
.zsd{
	text-align:center;
	
	}
.zsd2{
	margin-bottom:10px;
	    text-transform: lowercase;
	}
.rm_opts{
	text-align:left;
	}
.rm_section{
	border:1px solid #333;
	border-bottom:0;
	background:#f9f9f9;
}
.rm_opts label{
	font-size:16px;
	width:200px;
	display:block;
	float:left;	
}
.rm_input {
	padding:30px 10px;
	border-bottom:1px solid #333;
	
}
.rm_opts small{
	display:block;
	float:right;
	width:40%;
	color:#ffffff;
	font-size:14px;
	text-align:left;
}
.rm_opts input[type="text"], .rm_opts select{
	width:280px;
	font-size:12px;
	padding:4px;
	color:#333;
	line-height:1em;
	background:#f3f3f3;
}
.rm_input input:focus, .rm_input textarea:focus{
		background:#fff;
}
.rm_input textarea{
	width:280px;
	height:175px;
	font-size:12px;
	padding:4px;
	color:#333;
	line-height:1.5em;
	background:#f3f3f3;
}
.rm_title h3 {
	cursor:pointer;
	font-size:20px;
	text-transform: uppercase;
	margin:0;
	font-weight:bold;
	color:#ffffff;
	float:left;
	width:80%;
	padding:14px 4px;
}
.rm_title{
	cursor:pointer;
	background:url('images/backtheme.png');
	padding:0;
	
	}
.rm_title h3 img.inactive{
	margin:-8px 10px 0 2px;
	width:32px;
	height:32px;	
	background:url('images/pointer.png') no-repeat 0 0;
	float:left;
	-moz-border-radius:6px;
}
.rm_title h3 img.active{
	margin:-8px 10px 0 2px;
	width:32px;
	height:32px;	
	background:url('images/pointer.png') no-repeat  0 -32px;
	float:left;
}
.rm_title{
	border:1px solid #222222;
}	
.rm_title:hover{
	border:1px solid #678fc0;
}
.rm_title span.submit{
    display: block;
    float: right;
    margin: 0;
    padding: 0;
    width: 15%;
    padding: 14px 0;
    text-align: center;
}
.submit input {
    background: #222222;
    color: #f25757;
    border: #2E2D2D 1px solid;
    font-size: 14px;
    padding-left: 10px;
    padding-right: 10px;
-moz-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
}
.submit input:hover {
	cursor: pointer; cursor: hand; 
	background: #000000;
}
#message strong{
	color:#e51865;
	
	}
.rm_wrap #message p {
   margin: 0 !important; 
}
.clearfix{
	clear:both;
}
.rm_table th, .rm_table td{
	border:1px solid #bbb;
	padding:10px;
	text-align:center;
}
.themelogo{
	text-align:left;
	position:absolute;
	top:0;
	}
.themelogo img{
	height:150px;
	}
.rm_table th, .rm_table td.feature{
	border-color:#888;
	}
.notice, div.error, div.updated {
    background: none;
}
.notice-success, div.updated {
    border-left-color: #fb2b79;
	background: #fb2b79;
}
.notice-success, div.updated p {
		padding-left:20px;
}

functions_wt.css

.rm_wrap, .rm_wrap h2, .rm_wrap p, .rm_options {
    background: #ffffff;
    color: #000000;
    padding: 20px;
}
.rm_wrap h2 {
    font-size: 35px;
}
.rm_wrap {
    width: 80%;
    margin-left: auto;
    margin-right: auto;
}
.fns {
    font-size: 10px;
    text-align: center;
}
.fns a {
    color: #678fbf;
    text-decoration: none;
}
.fns a:hover {
	text-decoration: underline;
}
.zsd{
	text-align:center;
	}
.zsd2{
	margin-bottom:10px;
	    text-transform: lowercase;
	}
.rm_opts{
	text-align:left;
	}

.rm_section{
	border-bottom:0;
	background:#f9f9f9;
}

.rm_opts label{
	font-size:16px;
	width:200px;
	display:block;
	float:left;	
}
.rm_input {
padding:30px 10px;
border: #e9e9e9 1px solid;
}
.rm_opts small{
	display:block;
	float:right;
	width:40%;
	color:#000000;
	font-size:14px;
	text-align:left;
}
.rm_opts input[type="text"], .rm_opts select{
	width:280px;
	font-size:12px;
	padding:4px;
	color:#333;
	line-height:1em;
	background:#f3f3f3;
}
.rm_input input:focus, .rm_input textarea:focus{
		background:#fff;
}
.rm_input textarea{
	width:280px;
	height:175px;
	font-size:12px;
	padding:4px;
	color:#333;
	line-height:1.5em;
	background:#f3f3f3;
}
.rm_title h3 {
	cursor:pointer;
	font-size:20px;
	text-transform: uppercase;
	margin:0;
	font-weight:bold;
	color:#000000;
	float:left;
	width:80%;
	padding:14px 4px;
}
.rm_title{
	cursor:pointer;
	background:url('images/backtheme_wt.png');
	padding:0;
	}
.rm_title h3 img.inactive{
	margin:-8px 10px 0 2px;
	width:32px;
	height:32px;	
	background:url('images/pointer.png') no-repeat 0 0;
	float:left;
	-moz-border-radius:6px;
}
.rm_title h3 img.active{
	margin:-8px 10px 0 2px;
	width:32px;
	height:32px;	
	background:url('images/pointer.png') no-repeat  0 -32px;
	float:left;
}
.rm_title{
	border:1px solid #e9e9e9;
}	
.rm_title:hover{
	border:1px solid #678fc0;
}
.rm_title span.submit{
    display: block;
    float: right;
    margin: 0;
    padding: 0;
    width: 15%;
    padding: 14px 0;
    text-align: center;
}
.submit input {
  background: #fff;
    color: #f25757;
    border: #e9e9e9 1px solid;
    font-size: 14px;
    padding-left: 10px;
    padding-right: 10px;
    -moz-border-radius: 5px 5px 5px 5px;
    border-radius: 5px 5px 5px 5px;
	font-weight:bold;
}
.submit input:hover {
	cursor: pointer; cursor: hand; 
	background: #e9e9e9;
}
#message strong{
	color:#e51865;
}
.rm_wrap #message p {
   margin: 0 !important; 
}
.clearfix{
	clear:both;
}
.rm_table th, .rm_table td{
	border:1px solid #bbb;
	padding:10px;
	text-align:center;
}
.themelogo{
	text-align:left;
	position:absolute;
	top:0;
	}
.themelogo img{
	height:150px;
	}
.rm_table th, .rm_table td.feature{
	border-color:#888;
	}
.notice, div.error, div.updated {
    background: none;
}
.notice-success, div.updated {
    border-left-color: #fb2b79;
	background: #fb2b79;
}
	.notice-success, div.updated p {
		padding-left:20px;
}

rm_script.js

    jQuery(document).ready(function(){
		jQuery('.rm_options').slideUp();
		
		jQuery('.rm_section h3').click(function(){		
			if(jQuery(this).parent().next('.rm_options').css('display')=='none')
				{	jQuery(this).removeClass('inactive');
					jQuery(this).addClass('active');
					jQuery(this).children('img').removeClass('inactive');
					jQuery(this).children('img').addClass('active');
					
				}
			else
				{	jQuery(this).removeClass('active');
					jQuery(this).addClass('inactive');		
					jQuery(this).children('img').removeClass('active');			
					jQuery(this).children('img').addClass('inactive');
				}
				
			jQuery(this).parent().next('.rm_options').slideToggle('slow');	
		});
});

И последно, свалете и картинките към скрипта и ги поставете в директорията на Вашата тема/functions/images/. Свали картинките от тук.

  • 1
  • 2

Търсене

Категории

  • CSS
  • SEO Оптимизация
  • WooCommerce
  • Wordpress
  • WordPress Модули
  • Код оптимизация
  • Трикове

Архиви

  • July 2020
  • July 2018
  • February 2018
  • August 2017
  • March 2017
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • March 2016
  • July 2012

УСЛУГИ

  • Уеб сайт изработване
  • Електронни магазини
  • Поддръжка на WordPress сайт
  • ОПТИМИЗАЦИЯ НА САЙТ
  • Изработка на лого
  • ХОСТИНГ И ДОМЕЙН
  • СОФТУЕР ПО ПОРЪЧКА
  • Поръчка на модул

ВРЪЗКА С НАС

(+359) 888 898 797
Email: office@ait-webdesign.com

AIT WEB DESIGN
4000 Пловдив, Ул. Макгахан 8. България

Отвори в Google Maps

ПОСЛЕДНО ЗАВЪРШЕНИ ПРОЕКТИ

  • Динамичен сайт Electromatkordov.com – Хасково
  • Динамичен сайт EvoLife – Бургас
  • Изработване на динамичен уеб сайт на Интер Дент – Перник
  • Изработване на сайт Independent-consultants.com – Германия
  • Изработване на сайт Online life academy – Хасково
  • Изработване на сайт на Yanevfashion – Хасково
  • Изработване на сайт на ГЕНОМАКС ООД – София
  • Изработване на сайт Фирма Mercari – Пловдив
  • Изработка на CMS AIT ADMIN PANEL 4.0 – София
  • Изработка на динамичен сайт на фирма Max Cheap – Хасково
  • Изработка на електронен магазин Elegantno.bg
  • Изработка на електронен магазин Merystyle.com
  • Изработка на електронен магазин Mytiande.bg – гр. Габрово
  • Изработка на електронен магазин Ochila.com
  • Изработка на електронен магазин град София – Baghome.bg
  • Изработка на електронен магазин град Ст. Загора – Sectronics.info
  • Изработка на онлайн магазин “АЙ ЕНД ДЖИ ГРОУП” ООД – гр. Хасково
  • Изработка на онлайн магазин Blagichka.com – София
  • Изработка на онлайн магазин Cosmeticline BG – София
  • Изработка на сайт – онлайн каталог за библиотека Христо Смирненски град Хасково – Catalog.library-haskovo.org
  • Изработка на сайт Deals Of Tomorrow – Англия
  • Изработка на сайт TMXBG.COM – София
  • Изработка на сайт за изкуство Eyeseechaos.com – Хасково
  • Изработка на сайт за кастинг агенция Crew Casting – гр. София
  • Изработка на сайт за козметични продукти Tiande – гр. Габрово
  • Изработка на сайт за недвижими имоти 2процента БГ – Пловдив
  • Изработка на сайт за поезия – Пловдив
  • Изработка на сайт за туристическа фирма Еисако Тур – гр. Смолян
  • Изработка на сайт каталог V-Pharm – Велико Търново
  • Изработка на сайт на Sanata Vopilif Music Project – Хасково
  • Изработка на сайт Папагали Жако – гр. Хасково
  • Изработка на сайт по проект „Хасково и Одрин – Културно – исторически дестинации“ – гр. Хасково
  • Изработка на сайт София за подбор на модели – SVvagency-bg.com
  • Изработка на сайт„Кой чисти в природата“ за РБ „Хр. Смирненски” – гр. Хасково
  • Изработка на софтуер по поръчка ТЕЛК
  • Изработка на уеб сайт Abcstudio.bg – гр. Хасково
  • Изработка на уеб сайт Kristal 24 BG – гр. Сандански
  • Изработка на уеб сайт Lazarovart.com – гр. Бургас
  • Изработка на уеб сайт MakeAPointBag.Com – гр. Пловдив
  • Изработка на уеб сайт Mo’s Table – Лондон
  • Изработка на уеб сайт Nansy fashion – гр. Хасково
  • Изработка на уеб сайт Tripvam.Com – гр. София
  • Изработка на уеб сайт Twinstarsoft.com – гр. Варна
  • Изработка на уеб сайт Регионална Библиотека “Христо Смирненски” – гр. Хасково
  • Изработка на фирмен уеб сайт за “Еталон Груп” ЕООД – гр. Хасково
  • Редизайн на онлайн магазин Глобал БГ – Хасково
  • Изработка на сайт Пловдив – Arsmedica.bg
  • Изработка на сайт Пловдив – U4avplovdiv.com
  • Сайт за недвижими имоти IRE.BG – Хасково
  • Уеб сайт изработка на Globalpakbg.com – Хасково

Етикети

агенция брокер за продажба на имоти изработка на бизнес сайт изработка на каталог изработка на каталог за електротехника изработка на каталог за мебели изработка на медицински сайт изработка на онлайн магазин изработка на сайт за ваучери и намаления изработка на сайт за дентална практика изработка на сайт за изкуство изработка на сайт за ластици и шнурове изработка на сайт за лекарства изработка на сайт за мебели изработка на сайт за недвижими имоти изработка на сайт за радиатори изработка на сайт за цитати и съвети изработка на сайт каталог изработка на уеб сайт хасково пловдив новини сайт агенция недвижими имоти сайт електротехника сайт за брокерска фирма сайт за ваучери сайт за връзки и кантове сайт за дентален кабинет сайт за духовно и личностно развитие сайт за електроника сайт за изкуство сайт за музика и поезия сайт за недвижими имоти сайт за новини сайт за оферти и намаления сайт за плетени шнурове сайт за подматрачни рамки сайт за спални и матраци сайт за туризъм сайт за шевни конци сайт каталог мебели сайт лекарства и хранителни добавки сайт посредник за недвижими имоти сайт продажба на имоти сайт радиатори за дом и офис фирма за недвижими имоти фирмен сайт фирмен сайт за плетени ластици
  • Политика за защита на личните данни
Всички права запазени AIT WEB DESIGN 2020 -

изработка на сайтове

и онлайн магазини
TOP
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. However you may visit Cookie Settings to provide a controlled consent.
Read More
ACCEPT REJECT
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDurationDescription
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
Save & Accept