pluginFileFullPath = $pluginFileFullPath;
}
/**
* Only a static class method or function can be used in an uninstall hook.
*/
public function register()
{
if ($this->pluginFileFullPath && file_exists($this->pluginFileFullPath)) {
register_activation_hook($this->pluginFileFullPath, array($this, 'install'));
register_deactivation_hook($this->pluginFileFullPath, array($this, 'deactivate'));
add_filter(
'plugin_action_links_' . plugin_basename(WC_ADP_PLUGIN_PATH . WC_ADP_PLUGIN_FILE),
array($this, 'pluginActionLinks')
);
}
}
public function pluginActionLinks($actions)
{
$actionsList = [
[
'https://algolplus.freshdesk.com/support/tickets/new',
__("Contact support", 'advanced-dynamic-pricing-for-woocommerce'),
__('Support', 'advanced-dynamic-pricing-for-woocommerce')
],
[
'https://docs.algolplus.com/category/advanced-dynamic-pricing/',
__('Plugin documentation', 'advanced-dynamic-pricing-for-woocommerce'),
__('Docs', 'advanced-dynamic-pricing-for-woocommerce')
],
[
admin_url('admin.php?page=' . AdminPage::SLUG),
__('Change the plugin settings', 'advanced-dynamic-pricing-for-woocommerce'),
__('Settings', 'advanced-dynamic-pricing-for-woocommerce')
],
];
foreach ($actionsList as $action) {
array_unshift($actions,
sprintf(
'%s',
$action[0], $action[1], $action[2]
)
);
}
if (!defined('WC_ADP_PRO_VERSION_PATH')) {
$goToProLink = sprintf(
'%s',
'https://algolplus.com/plugins/downloads/advanced-dynamic-pricing-woocommerce-pro/?utm_source=plugin&utm_medium=banner&utm_campaign=2026',
__('Upgrade to Advanced Dynamic Pricing Pro', 'advanced-dynamic-pricing-for-woocommerce'),
__('Go to Pro', 'advanced-dynamic-pricing-for-woocommerce')
);
$actions[] = $goToProLink;
}
return $actions;
}
public function singleInstall()
{
Database::createDatabase();
do_action('wdp_install');
}
/** @param boolean $networkWide */
public function install($networkWide)
{
global $wpdb;
if (is_multisite() && $networkWide) {
// phpcs:ignore WordPress.DB.DirectDatabaseQuery
$blog_ids = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
foreach ($blog_ids as $blog_id) {
switch_to_blog($blog_id);
$this->singleInstall();
restore_current_blog();
}
} else {
$this->singleInstall();
}
}
public function deactivate()
{
AdminNotice::cleanUp();
}
/**
* Method required for tests
*/
public function uninstall()
{
$file = WC_ADP_PLUGIN_PATH . 'uninstall.php';
if (file_exists($file)) {
include_once $file;
}
}
}