HEX
Server: LiteSpeed
System: Linux prometheus.hongkongserver.net 4.18.0-553.134.1.el8_10.x86_64 #1 SMP Tue Jun 16 16:05:57 EDT 2026 x86_64
User: ayxmplky (1112)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/ayxmplky/public_html/wp-content/themes/tactic/inc/customizer.php
<?php
/**
 * Theme Customizer — настройки сайта
 *
 * @package tactic
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

function tactic_customize_register( WP_Customize_Manager $wp_customize ): void {

	/* ── Панель ── */
	$wp_customize->add_panel( 'tactic_panel', [
		'title'    => __( 'Настройки сайта TACTIC', 'tactic' ),
		'priority' => 30,
	] );

	/* ──────────────────────────────
	   Секция: Контактная информация
	────────────────────────────── */
	$wp_customize->add_section( 'tactic_contact', [
		'title' => __( '联系方式', 'tactic' ),
		'panel' => 'tactic_panel',
	] );

	$contact_fields = [
		'tactic_address_cn'    => [ __( '地址(中文)', 'tactic' ),    'sanitize_text_field', '圣彼得堡, Staroderevenskaya 大街, 11号, 2号楼' ],
		'tactic_address_en'    => [ __( 'Address (EN)', 'tactic' ),     'sanitize_text_field', 'St. Petersburg, Staroderevenskaya St., 11, Bldg 2' ],
		'tactic_postal_code'   => [ __( '邮政编码', 'tactic' ),         'sanitize_text_field', '' ],
		'tactic_email_eu'      => [ __( '欧洲邮箱', 'tactic' ),         'sanitize_email',      '' ],
		'tactic_email_global'  => [ __( '全球邮箱', 'tactic' ),         'sanitize_email',      '' ],
		'tactic_phone'         => [ __( '联系电话', 'tactic' ),         'sanitize_text_field', '' ],
		'tactic_instagram_url' => [ __( 'Instagram 链接', 'tactic' ),   'esc_url_raw',         '' ],
		'tactic_wechat_url'    => [ __( '微信公众号链接', 'tactic' ),   'esc_url_raw',         '' ],
		'tactic_linkedin_url'  => [ __( 'LinkedIn 链接', 'tactic' ),    'esc_url_raw',         '' ],
		'tactic_wechat_qr_id'  => [ __( '微信二维码 (图片ID)', 'tactic' ), 'absint',            '' ],
		'tactic_db_badge_id'   => [ __( 'Dun & Bradstreet бейдж (ID)', 'tactic' ), 'absint', '' ],
	];

	foreach ( $contact_fields as $id => [$label, $sanitize, $default] ) {
		$wp_customize->add_setting( $id, [
			'default'           => $default,
			'sanitize_callback' => $sanitize,
		] );
		// QR и D&B — медиазагрузчик
		if ( in_array( $id, [ 'tactic_wechat_qr_id', 'tactic_db_badge_id' ], true ) ) {
			$wp_customize->add_control(
				new WP_Customize_Media_Control( $wp_customize, $id, [
					'label'     => $label,
					'section'   => 'tactic_contact',
					'mime_type' => 'image',
				] )
			);
		} else {
			$wp_customize->add_control( $id, [
				'label'   => $label,
				'section' => 'tactic_contact',
				'type'    => 'text',
			] );
		}
	}

	/* ──────────────────────────────
	   Секция: ICP-лицензия
	────────────────────────────── */
	$wp_customize->add_section( 'tactic_icp', [
		'title' => __( 'ICP-лицензия', 'tactic' ),
		'panel' => 'tactic_panel',
	] );

	$wp_customize->add_setting( 'tactic_icp_number', [
		'default'           => '',
		'sanitize_callback' => 'sanitize_text_field',
	] );
	$wp_customize->add_control( 'tactic_icp_number', [
		'label'       => __( 'Номер ICP-лицензии', 'tactic' ),
		'description' => __( 'Например: 沪icp备XXXXXXXX号', 'tactic' ),
		'section'     => 'tactic_icp',
		'type'        => 'text',
	] );

	/* ──────────────────────────────
	   Секция: Статистика (карта)
	────────────────────────────── */
	$wp_customize->add_section( 'tactic_stats', [
		'title' => __( 'Статистика (карта мира)', 'tactic' ),
		'panel' => 'tactic_panel',
	] );

	$stats = [
		'tactic_stat1' => [ __( 'Стат 1', 'tactic' ), '1000+ моделей' ],
		'tactic_stat2' => [ __( 'Стат 2', 'tactic' ), 'Партнёры' ],
		'tactic_stat3' => [ __( 'Стат 3', 'tactic' ), '10+ лет опыта' ],
		'tactic_stat4' => [ __( 'Стат 4', 'tactic' ), 'Складская инфраструктура' ],
		'tactic_stat5' => [ __( 'Стат 5', 'tactic' ), 'Стабильные поставки' ],
	];

	foreach ( $stats as $id => [$label, $default] ) {
		$wp_customize->add_setting( $id, [
			'default'           => $default,
			'sanitize_callback' => 'sanitize_text_field',
		] );
		$wp_customize->add_control( $id, [
			'label'   => $label,
			'section' => 'tactic_stats',
			'type'    => 'text',
		] );
	}

	/* ──────────────────────────────
	   Секция: Кнопка "О нас"
	────────────────────────────── */
	$wp_customize->add_section( 'tactic_about_section', [
		'title' => __( '"关于我们" 区块按钮', 'tactic' ),
		'panel' => 'tactic_panel',
	] );

	$wp_customize->add_setting( 'tactic_about_btn_text', [
		'default'           => __( '了解更多公司信息', 'tactic' ),
		'sanitize_callback' => 'sanitize_text_field',
	] );
	$wp_customize->add_control( 'tactic_about_btn_text', [
		'label'   => __( 'Текст кнопки', 'tactic' ),
		'section' => 'tactic_about_section',
		'type'    => 'text',
	] );

	$wp_customize->add_setting( 'tactic_about_btn_url', [
		'default'           => '/about/',
		'sanitize_callback' => 'esc_url_raw',
	] );
	$wp_customize->add_control( 'tactic_about_btn_url', [
		'label'   => __( 'Ссылка кнопки', 'tactic' ),
		'section' => 'tactic_about_section',
		'type'    => 'text',
	] );

	/* ──────────────────────────────
	   Секция: Текст футера
	────────────────────────────── */
	$wp_customize->add_section( 'tactic_footer_section', [
		'title' => __( 'Футер — дополнительно', 'tactic' ),
		'panel' => 'tactic_panel',
	] );

	$wp_customize->add_setting( 'tactic_footer_credit', [
		'default'           => '',
		'sanitize_callback' => 'sanitize_text_field',
	] );
	$wp_customize->add_control( 'tactic_footer_credit', [
		'label'   => __( 'Текст авторских прав / разработчика', 'tactic' ),
		'section' => 'tactic_footer_section',
		'type'    => 'text',
	] );
}
add_action( 'customize_register', 'tactic_customize_register' );