diff --git a/ordernumbers_woocommerce.php b/ordernumbers_woocommerce.php index 6720137eb2e20ef1ee16e4dad36e276413b5305f..9afb298002b0b520074993cfcbec3ececa7d2f0f 100644 --- a/ordernumbers_woocommerce.php +++ b/ordernumbers_woocommerce.php @@ -330,7 +330,7 @@ class OpenToolsOrdernumbers extends OpenToolsOrdernumbersBasic { } function thirdparty_get_invoicenumber($default, $orderid) { - if (get_option('customize_invoice', 'no')!='no') { + if ($this->invoicenumbers_activated()) { $_of = new WC_Order_Factory(); $order = $_of->get_order($orderid); $number = $this->get_or_create_number($orderid, $order, 'invoice'); @@ -381,7 +381,7 @@ class OpenToolsOrdernumbers extends OpenToolsOrdernumbersBasic { * The action to actually create the number and store it as post meta with the order */ function thirdparty_wpo_wcpdf_create_number($type, $orderid) { - if ($type=='invoice' && (get_option('customize_'.$type, 'no')!='no') ) { + if ($type=='invoice' && $this->invoicenumbers_activated() ) { $_of = new WC_Order_Factory(); $order = $_of->get_order($orderid); $number = $this->get_or_create_number($orderid, $order, $type); @@ -398,11 +398,12 @@ class OpenToolsOrdernumbers extends OpenToolsOrdernumbersBasic { */ function thirdparty_wpo_wcpdf_remove_options() { global $wp_settings_fields; - if (get_option('customize_invoice', 'no')!='no') { + if ($this->invoicenumbers_activated()) { $wp_settings_fields['wpo_wcpdf_template_settings']['invoice']['display_number']['title'] = $this->helper->__('Display invoice number'); $wp_settings_fields['wpo_wcpdf_template_settings']['invoice']['display_number']['args']['description'] = $this->helper->__('The <a href="admin.php?page=wc-settings&tab=checkout§ion=ordernumber">Open Tools Ordernumber plugin</a> has invoice numbers enabled and will generate invoice numbers for this plugin.' ); unset($wp_settings_fields['wpo_wcpdf_template_settings']['invoice']['next_invoice_number']); unset($wp_settings_fields['wpo_wcpdf_template_settings']['invoice']['invoice_number_formatting']); + unset($wp_settings_fields['wpo_wcpdf_template_settings']['invoice']['yearly_reset_invoice_number']); } else { $wp_settings_fields['wpo_wcpdf_template_settings']['invoice']['display_number']['args']['description'] = $this->helper->__('To let the Open Tools ordernumber plugin create invoice numbers with your desired format, please enable invoices in <a href="admin.php?page=wc-settings&tab=checkout§ion=ordernumber">that plugin\'s configuration page</a>.' ); } @@ -430,7 +431,7 @@ class OpenToolsOrdernumbers extends OpenToolsOrdernumbersBasic { // TODO: Modify the invoice number section text to hint at the installed order number plugin and how to enable it! global $wp_settings_fields; return; - if (get_option('customize_invoice', 'no')!='no') { + if ($this->invoicenumbers_activated()) { // bewpi_template_settings -> invoice_number -> // -) bewpi_invoice_number_type // -) bewpi_reset_counter diff --git a/ordernumbers_woocommerce_basic.php b/ordernumbers_woocommerce_basic.php index 0189c4c494534c3aeed1866234d610bfd3f7d6f3..d7bd24437e3cd103d0732d73799d1ae186387308 100644 --- a/ordernumbers_woocommerce_basic.php +++ b/ordernumbers_woocommerce_basic.php @@ -18,6 +18,11 @@ class OpenToolsOrdernumbersBasic { public $ordernumber_meta = "_oton_number_"; public $ordernumber_new_placeholder = "[New Order]"; public $plugin_basename = ''; + public $plugin_config_link = 'admin.php?page=wc-settings&tab=checkout§ion=ordernumber'; + public $plugin_url = 'https://wordpress.org/plugins/woocommerce-basic-ordernumbers/'; + public $plugin_url_advanced = 'http://open-tools.net/woocommerce/advanced-ordernumbers-for-woocommerce.html'; + public $plugin_url_docs = 'http://open-tools.net/documentation/advanced-order-numbers-for-woocommerce.html'; + public $plugin_url_support = 'http://open-tools.net/support-forum/ordernumbers-for-woocommerce.html'; protected $helper = null; protected $settings = array(); @@ -51,6 +56,15 @@ class OpenToolsOrdernumbersBasic { */ protected function initializeHooks() { $helper = OrdernumberHelperWooCommerce::getHelper(); + // Information for other plugins + add_filter( 'opentools_ordernumbers_activated', array( &$this, 'ordernumbers_activated')); + add_filter( 'opentools_invoicenumbers_activated', array( &$this, 'invoicenumbers_activated')); + add_filter ('woocommerce_invoice_number_by_plugin', array( &$this, 'invoicenumbers_activated')); + add_filter ('woocommerce_order_number_by_plugin', array( &$this, 'ordernumbers_activated')); + add_filter ('woocommerce_invoice_number_configuration_link', array( &$this, 'invoicenumbers_config_link')); + add_filter ('woocommerce_order_number_configuration_link', array( &$this, 'ordernumbers_config_link')); + + // CONFIGURATION SCREENS add_filter( 'woocommerce_get_sections_checkout', array( &$this, 'add_admin_section')); // The checkout settings page assumes all subpages are payment gateways, so we have to override this and manually pass our settings: @@ -107,7 +121,7 @@ class OpenToolsOrdernumbersBasic { 'desc_tip' => true, 'id' => 'opentools_ordernumbers_upgrade', 'type' => 'opentools_ordernumbers_upgrade', - 'link' => 'http://open-tools.net/woocommerce/advanced-ordernumbers-for-woocommerce.html', + 'link' => $this->plugin_url_advanced, ), ); return $settings; @@ -116,7 +130,7 @@ class OpenToolsOrdernumbersBasic { $settings = array(); $settings[] = array( 'name' => $this->helper->__( 'Configure Order Numbers'), - 'desc' => $this->helper->__( 'Configure the format and the counters of the order numbers in WooCommerce. For help, check out the plugin\'s <a href="http://open-tools.net/documentation/advanced-order-numbers-for-woocommerce.html">documentation at OpenTools</a>.'), + 'desc' => sprintf( $this->helper->__( 'Configure the format and the counters of the order numbers in WooCommerce. For help, check out the plugin\'s <a href="%s">documentation at OpenTools</a>.'), esc_attr($this->plugin_url_docs)), 'type' => 'title', 'id' => 'ordernumber_options' ); @@ -166,12 +180,42 @@ class OpenToolsOrdernumbersBasic { protected function initializeSettingsOther() { return array(); } + + + /** + * Filters for other plugins to get information about this one, e.g. + * indicating whether invoice/order numbers are to be created by this plugin + * and getting the link to the configuration page. + */ + + public function numbers_activated($type) { + return (get_option('customize_'.$type, 'no')!='no'); + } + public function ordernumbers_activated($default=false) { + return $this->numbers_activated('ordernumber'); + } + public function invoicenumbers_activated($default=false) { + return $this->numbers_activated('invoice'); + } + + public function invoicenumbers_config_link($default=null) { +// if ($this->invoicenumbers_activated()) + return $this->plugin_config_link; +// else +// return $default; + } + public function ordernumbers_config_link($default=null) { +// if ($this->invoicenumbers_activated()) + return $this->plugin_config_link; +// else +// return $default; + } /** * Add settings link to plugins page */ public function ordernumber_add_settings_link( $links ) { - $link = '<a href="admin.php?page=wc-settings&tab=checkout§ion=ordernumber">'. $this->helper->__( 'Settings' ) . '</a>'; + $link = '<a href="'.esc_attr($this->plugin_config_link).'">'. $this->helper->__( 'Settings' ) . '</a>'; // Prepend the settings link: array_unshift( $links, $link ); // $links['settings'] = $link; @@ -179,15 +223,15 @@ class OpenToolsOrdernumbersBasic { } public function ordernumber_plugin_row_meta( $links, $file ) { if ($file==$this->plugin_basename) { - $links['docs'] = '<a href="' . esc_url( 'http://open-tools.net/documentation/advanced-order-numbers-for-woocommerce.html' ) . '" title="' . esc_attr( $this->helper->__( 'Plugin Documentation' ) ) . '">' . $this->helper->__( 'Plugin Documentation' ) . '</a>'; - $links['support'] = '<a href="' . esc_url( 'http://open-tools.net/support-forum/ordernumbers-for-woocommerce.html' ) . '" title="' . esc_attr( $this->helper->__( 'Support Forum' ) ) . '">' . $this->helper->__( 'Support Forum' ) . '</a>'; + $links['docs'] = '<a href="' . esc_url( $this->plugin_url_docs ) . '" title="' . esc_attr( $this->helper->__( 'Plugin Documentation' ) ) . '">' . $this->helper->__( 'Plugin Documentation' ) . '</a>'; + $links['support'] = '<a href="' . esc_url( $this->plugin_url_support ) . '" title="' . esc_attr( $this->helper->__( 'Support Forum' ) ) . '">' . $this->helper->__( 'Support Forum' ) . '</a>'; } return (array)$links; } public function basic_ordernumber_plugin_row_meta( $links, $file ) { if ($file==$this->plugin_basename && !$this->is_advanced) { - $links['advanced'] = '<a href="' . esc_url( 'http://open-tools.net/woocommerce/advanced-ordernumbers-for-woocommerce.html' ) . '" title="' . esc_attr( $this->helper->__('Purchase Advanced Version')) . '">' . $this->helper->__('Purchase Advanced Version') . '</a>'; + $links['advanced'] = '<a href="' . esc_url( $this->plugin_url_advanced ) . '" title="' . esc_attr( $this->helper->__('Purchase Advanced Version')) . '">' . $this->helper->__('Purchase Advanced Version') . '</a>'; } return (array)$links; } @@ -383,7 +427,7 @@ class OpenToolsOrdernumbersBasic { } function generateNumber($orderid, $order, $type='ordernumber') { - if (get_option('customize_'.$type, 'no')!='no') { + if ($this->numbers_activated($type)) { $fmt = get_option ($type.'_format', "#"); $ctrsettings = array( "${type}_format" => '',