Files
torebki-fabiola.pl/wp-content/plugins/wirtualna-polska-pixel/admin/admin.php
2026-03-05 13:07:40 +01:00

144 lines
3.9 KiB
PHP

<?php
class WPHPixelAdmin {
public $plugin_name;
public function __construct($plugin_name)
{
$this->plugin_name = $plugin_name;
add_action( 'admin_menu', [$this, 'wph_add_admin_page'] );
add_filter( 'plugin_action_links_'.$this->plugin_name, [$this, 'add_action_links'], 10, 2);
}
public function init()
{
}
public function wph_admin_init()
{
if ( is_admin() && current_user_can( 'activate_plugins' ) && !is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
add_action( 'admin_notices', [$this, 'wph_plugin_notice'] );
deactivate_plugins( $this->plugin_name );
if ( isset( $_GET['activate'] ) ) {
unset( $_GET['activate'] );
}
}
add_settings_section(
'wph_admin',
'Ogólne',
'',
'wph_page'
);
register_setting(
'wph_page',
'wphopt_pixel_id'
);
add_settings_field(
'wphopt-pixel-id',
'WP Pixel ID',
[$this, 'wph_admin_output_field'],
'wph_page',
'wph_admin'
);
register_setting(
'wph_page',
'wphopt_pixel_ajax_listing'
);
add_settings_field(
'wphopt-pixel-ajax-listing',
'Czy w Twoim sklepie na stronie listy produktów/kategorii dodanie do koszyka odbywa się bez przeładowania strony?',
[$this, 'wph_admin_output_field_checkbox'],
'wph_page',
'wph_admin',
['id_field' => 'wphopt_pixel_ajax_listing']
);
register_setting(
'wph_page',
'wphopt_pixel_ajax_product'
);
add_settings_field(
'wphopt-pixel-ajax-product',
'Czy w Twoim sklepie na stronie produktu dodanie do koszyka odbywa się bez przeładowania strony?',
[$this, 'wph_admin_output_field_checkbox'],
'wph_page',
'wph_admin',
['id_field' => 'wphopt_pixel_ajax_product']
);
}
public function wph_plugin_notice() {
echo '<div class="error"><p>Błąd, Wirtualna Polska Pixel wymaga zainstalowanego pluginu Woocommerce.</p></div>';
}
public function add_action_links ( $actions, $plugin_file ) {
$mylinks = [
'<a href="' . admin_url( 'options-general.php?page=wph_page' ) . '">'. __('Settings') .'</a>',
];
$actions = array_merge( $actions, $mylinks );
return $actions;
}
public function wph_add_admin_page()
{
add_options_page(
'WP Pixel Ustawienia',
'WP Pixel',
'manage_options',
'wph_page',
[$this, 'wph_show_admin_page']
);
add_action( 'admin_init', [$this, 'wph_admin_init'] );
}
function wph_show_admin_page() {
if (!current_user_can('manage_options')) {
return;
}
?>
<div class="wrap">
<h2>WP Pixel Ustawienia</h2>
<?php //settings_errors();?>
<form action="options.php" method="post">
<?php settings_fields( 'wph_page' ); ?>
<?php do_settings_sections( 'wph_page' ); ?>
<?php submit_button(); ?>
</form>
</div>
<?php
}
public function wph_admin_output_field()
{
$idField = 'wphopt_pixel_id';
$options = get_option($idField, '');
echo "<input id='".esc_attr($idField)."' name='".esc_attr($idField)."' size='40' type='text' value='".esc_attr($options)."' />";
}
public function wph_admin_output_field_checkbox($args)
{
$options = get_option($args['id_field'], '');
$checked = ($options == 1) ? 'checked="checked"' : '';
echo "<label><input id='".esc_attr($args['id_field'])."' name='".esc_attr($args['id_field'])."' type='checkbox' value='1' ".esc_js($checked)." /> Zaznacz jeśli tak</label>";
if(is_plugin_active( 'woo-ajax-add-to-cart/woo-ajax-add-to-cart.php' ) || is_plugin_active( 'woocommerce-ajax-cart/wooajaxcart.php' )) {
echo "<br><small>Wykryto wtyczkę umożliwiającą dodawanie produktów do koszyka bez przeładowania strony, polecamy włączyć powyższą opcję</small>";
}
}
}