144 lines
3.9 KiB
PHP
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>";
|
|
}
|
|
}
|
|
}
|