public function test_load_order() { // reverse plugin load order update_option('active_plugins', array('woocommerce/woocommerce.php', 'woocommerce-pos/woocommerce-pos.php')); $response = $this->client->get(wc_pos_url(), ['allow_redirects' => false]); // expect 302 redirect to login $this->assertEquals(302, $response->getStatusCode()); // restore plugin load order update_option('active_plugins', array('woocommerce-pos/woocommerce-pos.php', 'woocommerce/woocommerce.php')); }
/** * Add POS to admin menu */ public function admin_menu() { if (!current_user_can('manage_woocommerce_pos')) { return; } $this->toplevel_screen_id = add_menu_page(__('POS', 'woocommerce-pos'), __('POS', 'woocommerce-pos'), 'manage_woocommerce_pos', WC_POS_PLUGIN_NAME, array($this, 'display_upgrade_page'), 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMDI0IDEwMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnIGlkPSJpY29tb29uLWlnbm9yZSI+PC9nPjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik05NTAuODU2LDBDOTQ4LjA1MiwwLDc2LjI4OCwwLDczLjE0LDBDMzIuNzQ0LDAtMC4wMDQsMzIuNzQ2LTAuMDA0LDczLjE0NHYxMDkuNTljMCw0MC4zOTYsMzIuNzQ2LDczLjE0NCw3My4xNDQsNzMuMTQ0czczLjE0NC0zMi43NDgsNzMuMTQ0LTczLjE0NGgtMC4wMDJWNTEuMmgxNDYuMjg2djEzMS41MzRjMCw0MC4zOTYsMzIuNzQ5LDczLjE0NCw3My4xNDQsNzMuMTQ0YzQwLjM5NiwwLDczLjE0NC0zMi43NDgsNzMuMTQ0LTczLjE0NGwwLDBWNTEuMkg1ODUuMTR2MTMxLjUzNGMwLDQwLjM5NiwzMi43NDYsNzMuMTQ0LDczLjE0NSw3My4xNDRjNDAuMzk3LDAsNzMuMTQ0LTMyLjc0OCw3My4xNDQtNzMuMTQ0VjUxLjJoMTQ2LjI4NnYxMzEuNTM0YzAsNDAuMzk2LDMyLjc0Niw3My4xNDQsNzMuMTQ0LDczLjE0NGM0MC4zOTgsMCw3My4xNDUtMzIuNzQ2LDczLjE0NS03My4xNDRWNzMuMTQ0QzEwMjQuMDAyLDMyLjc0OCw5OTEuMjU0LDAsOTUwLjg1OCwwSDk1MC44NTZ6IE0yMzUuNDMsNDUzLjc4NGMtNDQuNjIyLDAtNzkuMDI4LDM0Ljk0My03OS4wMjgsNzkuNTYzczM0LjQwNiw3OS41NjYsNzkuMDI4LDc5LjU2NmM0NC42MjIsMCw3OS41NjYtMzQuOTQ0LDc5LjU2Ni03OS41NjZDMzE0Ljk5Niw0ODguNzI5LDI4MC4wNTIsNDUzLjc4NCwyMzUuNDMsNDUzLjc4NEwyMzUuNDMsNDUzLjc4NHogTTk1MC44NTYsMjkwLjAxYy0yNy4zOTUsMC01My4yMjMtMTAuMTk4LTczLjE0NS0yOC43OThjLTE5LjkyNCwxOC42LTQ1Ljc1LDI4Ljc5OC03My4xNDQsMjguNzk4Yy0yNy4zOTUsMC01My4yMjMtMTAuMTk4LTczLjE0NS0yOC43OThjLTE5LjkyNCwxOC42LTQ1Ljc1LDI4Ljc5OC03My4xNDQsMjguNzk4Yy0yNy4zOTUsMC01My4yMi0xMC4xOTgtNzMuMTQ1LTI4Ljc5OGMtMTkuOTI0LDE4LjYtNDUuNzQ4LDI4Ljc5OC03My4xNDQsMjguNzk4Yy0yNy4zOTYsMC01My4yMi0xMC4yLTczLjE0NS0yOC43OThjLTE5LjkyNCwxOC42LTQ1Ljc1LDI4Ljc5OC03My4xNDQsMjguNzk4cy01My4yMi0xMC4yLTczLjE0NC0yOC43OThjLTE5LjkyNCwxOC42LTQ1Ljc0OCwyOC43OTgtNzMuMTQ0LDI4Ljc5OHMtNTMuMjItMTAuMi03My4xNDQtMjguNzk4Yy0xOS45MjQsMTguNi00NS43NSwyOC43OTgtNzMuMTQ0LDI4Ljc5OGMtMjcuMzk0LDAtNTMuMjItMTAuMjA2LTczLjE0NC0yOC44MDh2NzYyLjhsMjkyLjY5Mi0yMDMuNjY0aDY1OC4wOGM0MC40NDIsMCw3My4yMjctMzIuNzg0LDczLjIyNy03My4yMjZWMjYxLjIwNGMtMTkuOTI0LDE4LjYwNC00NS43NDYsMjguODA4LTczLjE0NSwyOC44MDhMOTUwLjg1NiwyOTAuMDF6IE0yMzUuNDMsNjcxLjUxNGMtMzAuMTA2LDAtNTcuNTI0LTkuNjc4LTc5LjU2Ni0yNS44MDR2OTguMzhjMCwyMC45NjYtMTMuNDQsMzMuMzMyLTI5LjU2OCwzMy4zMzJjLTE4LjI3OCwwLTI5LjU2OC0xMy45NzgtMjkuNTY4LTMzLjMzMnYtMzE0LjVjMC0xOC44MTYsMTIuOTAyLTMyLjc5NCwyOS41NjgtMzIuNzk0YzEyLjM2NCwwLDIzLjExOCw1LjkxNCwyNi44OCwyNS4yNjljMjIuMDQyLTE2LjY2Nyw1MC41MzQtMjcuNDE4LDgyLjI1NC0yNy40MThjNzYuODc3LDAsMTM5LjIzOCw2MS44MjYsMTM5LjIzOCwxMzguNzA0YzAsNzYuMzQtNjIuMzYyLDEzOC4xNjQtMTM5LjI0LDEzOC4xNjRIMjM1LjQzeiBNNTY0LjQzMiw2NzIuMDUyYy03Ny40MTYsMC0xMzkuMjM5LTYxLjgyMS0xMzkuMjM5LTEzOS4yMzljMC03Ni4zNDEsNjEuODIzLTEzOC4xNjUsMTM5LjIzOS0xMzguMTY1Yzc2LjM0LDAsMTM4LjE2NCw2MS44MjQsMTM4LjE2NCwxMzguMTY1QzcwMi41OTYsNjEwLjIyNiw2NDAuNzc0LDY3Mi4wNTIsNTY0LjQzMiw2NzIuMDUyeiBNODM5LjE0Miw2NzIuMDUyYy01MS4wNzMsMC04Ny4wOTItMjYuODgtODcuMDkyLTUzLjc2YzAtMTMuOTc4LDEwLjc1NC0yNS4yNjQsMjYuODgtMjUuMjY0YzIzLjY1NCwwLDMyLjc5NCwyNC4xOTEsNjIuMzYyLDI0LjE5MWMyMC40MjgsMCwyOS41NjgtMTAuNzUyLDI5LjU2OC0yMS41MDRjMC0xMC4yMTQtNy41MjYtMjEuNTA0LTM1LjQ4Mi0zNi4wMmwtMjUuMjY4LTEyLjkwMmMtNDEuMzk2LTIwLjk2Ni01NS4zNzQtNDUuMTU4LTU1LjM3NC03Ni44NzhjMC0zOC4xNjgsMzQuNDA1LTc0LjcyNiw4OS43NzktNzQuNzI2YzU4LjA2MiwwLDgxLjE3OSwzNS40ODIsODEuMTc5LDUxLjYwOGMwLDEzLjQ0LTEwLjIxNywyNC4xOTItMjYuMzQzLDI0LjE5MmMtMjEuNTA0LDAtMzQuNDA1LTE4LjgxNi02MS4yODUtMTguODE2Yy0xMy45NzksMC0yMC45NjcsOS42NzgtMjAuOTY3LDE4LjI3OGMwLDExLjI5LDUuOTE0LDE3LjIwMiwyOS4wMywzMC42NDJsNi40NTIsMy43NjJjOC42MDIsNS4zNzcsMTkuMzU0LDkuNjc3LDI4LjQ5NCwxNS4wNTVjNDAuODU3LDIyLjA0Miw1MS4wNzQsNDguMzg0LDUxLjA3NCw3NS4yNjRjLTAuMDA0LDM4LjcwNi0zMC42NDgsNzYuODc2LTkzLjAwOSw3Ni44NzZWNjcyLjA1MnogTTU2NC40MzIsNDU0LjMyMmMtNDQuNjE5LDAtNzkuNTYzLDM0Ljk0My03OS41NjMsNzguNDljMCw0NC42MTksMzQuOTQ0LDc5LjU2Myw3OS41NjMsNzkuNTYzYzQzLjU0NCwwLDc4LjQ5LTM0Ljk0NCw3OC40OS03OS41NjVjMC4wMDItNDMuNTQ3LTM0Ljk0MS03OC40OS03OC40OS03OC40OVY0NTQuMzIyeiIvPjwvc3ZnPg=='); add_submenu_page(WC_POS_PLUGIN_NAME, __('View POS', 'woocommerce-pos'), __('View POS', 'woocommerce-pos'), 'manage_woocommerce_pos', null); // adjust submenu global $submenu; $pos_submenu =& $submenu[WC_POS_PLUGIN_NAME]; $pos_submenu[0][0] = __('Upgrade to Pro', 'woocommerce-pos'); $pos_submenu[1][2] = wc_pos_url(); }
/** * Add POS to admin menu */ public function admin_menu() { if (!current_user_can('manage_woocommerce_pos')) { return; } $this->toplevel_screen_id = add_menu_page(__('POS', 'woocommerce-pos'), __('POS', 'woocommerce-pos'), 'manage_woocommerce_pos', WC_POS_PLUGIN_NAME, array($this, 'display_upgrade_page'), 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjEyMDAiIHZpZXdCb3g9IjAgMCAxMjAwIDEyMDAiPjxwYXRoIGZpbGw9IiM5OTkiIGQ9Ik0xMTE0LjI4NiAwSDg1LjdDMzguMzc1IDAgMCAzOC40IDAgODUuNzE0VjIxNC4xNGMwIDQ3LjMgMzguNCA4NS43IDg1LjcgODUuNyA0Ny4zNCAwIDg1LjcxNC0zOC4zNzUgODUuNzE0LTg1LjcxM1Y2MGgxNzEuNDN2MTU0LjE0YzAgNDcuMyAzOC40IDg1LjcgODUuNyA4NS43IDQ3LjMzOCAwIDg1LjcxMy0zOC4zNzUgODUuNzEzLTg1LjcxM1Y2MGgxNzEuNDI4djE1NC4xNGMwIDQ3LjMgMzguNCA4NS43IDg1LjcgODUuNyA0Ny4zNCAwIDg1LjcxNC0zOC4zNzUgODUuNzE0LTg1LjcxM1Y2MGgxNzEuNDI4djE1NC4xNGMwIDQ3LjMgMzguNCA4NS43IDg1LjcgODUuNyA0Ny4zNCAwIDg1LjcxNC0zOC4zNzQgODUuNzE0LTg1LjcxM1Y4NS43MTRDMTIwMCAzOC40IDExNjEuNiAwIDExMTQuMyAwek0yNzUuODkzIDUzMS43NzdjLTUyLjI5IDAtOTIuNjEgNDAuOTUtOTIuNjEgOTMuMjRzNDAuMzIgOTMuMiA5Mi42IDkzLjI0YzUyLjI5IDAgOTMuMjQtNDAuOTUgOTMuMjQtOTMuMjQuMDEtNTIuMzE3LTQwLjkyMy05My4yMTctOTMuMjIzLTkzLjI0eiIvPjxwYXRoIGZpbGw9IiM5OTkiIGQ9Ik0xMTE0LjI4NiAzMzkuODU1Yy0zMi4xMDQgMC02Mi4zNjgtMTEuOTUtODUuNzE1LTMzLjc1LTIzLjM0NyAyMS43OTgtNTMuNjEgMzMuNzUtODUuNzEzIDMzLjctMzIuMTA0IDAtNjIuMzY4LTExLjk1LTg1LjcxNS0zMy43NDgtMjMuMzQ4IDIxLjc5Ny01My42MTIgMzMuNzUtODUuNzE1IDMzLjc1cy02Mi4zNjctMTEuOTUyLTg1LjcxNS0zMy43NWMtMjMuMzQ3IDIxLjc5Ny01My42MSAzMy43NS04NS43MTQgMzMuNzUtMzIuMTAyIDAtNjIuMzY3LTExLjk1My04NS43MTQtMzMuNzUtMjMuMzQ3IDIxLjc5Ny01My42MTMgMzMuNzUtODUuNzE0IDMzLjc1LTMyLjEwMiAwLTYyLjM2Ny0xMS45NTMtODUuNzE0LTMzLjc1LTIzLjM0OCAyMS43OTctNTMuNjEyIDMzLjc1LTg1LjcxNCAzMy43NXMtNjIuMzY3LTExLjk1My04NS43MTQtMzMuNzVjLTIzLjM0NyAyMS43OTctNTMuNjEzIDMzLjc1LTg1LjcxNCAzMy43LTMyLjEwNCAwLTYyLjM2Ni0xMS45Ni04NS43MTQtMzMuNzZWMTIwMGwzNDMtMjM4LjY3aDc3MS4xODhjNDcuMzkzIDAgODUuODEyLTM4LjQyIDg1LjgxMi04NS44MTJWMzA2LjA5NGMtMjMuMzQ4IDIxLjgwNi01My42IDMzLjgwNi04NS43IDMzLjc2ek0yNzUuODkzIDc4Ni45M2MtMzUuMjggMC02Ny40MS0xMS4zNC05My4yNC0zMC4yNHYxMTUuMjljMCAyNC41Ny0xNS43NSAzOS4wNjItMzQuNjUgMzkuMDYyLTIxLjQyIDAtMzQuNjUtMTYuMzgtMzQuNjUtMzkuMDZWNTAzLjQyNmMwLTIyLjA1IDE1LjEyLTM4LjQzIDM0LjY1LTM4LjQzIDE0LjQ5IDAgMjcuMSA2LjkgMzEuNSAyOS42MSAyNS44My0xOS41MyA1OS4yMi0zMi4xMyA5Ni4zOS0zMi4xMyA5MC4wOSAwIDE2My4yIDcyLjUgMTYzLjIgMTYyLjVDNDM5LjA2MyA3MTQuNSAzNjYgNzg2LjkgMjc1LjkgNzg2Ljkzem0zODUuNTUuNjNjLTkwLjcyMiAwLTE2My4xNzItNzIuNDUtMTYzLjE3Mi0xNjMuMTcgMC04OS40NjIgNzIuNDUtMTYxLjkxMyAxNjMuMTczLTE2MS45MTMgODkuNDYgMCAxNjEuOSA3Mi41IDE2MS45IDE2MS45MTIuMDEgOTAuNzEtNzIuNDQzIDE2My4yMS0xNjEuOTQzIDE2My4yMXptMzIxLjkyNyAwYy01OS44NTIgMC0xMDIuMDYyLTMxLjUtMTAyLjA2Mi02MyAwLTE2LjM4IDEyLjYwMi0yOS42MSAzMS41LTI5LjYxIDI3LjcyMiAwIDM4LjQgMjguNCA3My4xIDI4LjM1IDIzLjk0IDAgMzQuNjUtMTIuNiAzNC42NS0yNS4yIDAtMTEuOTctOC44Mi0yNS4xOTgtNDEuNTgtNDIuMjFsLTI5LjYxLTE1LjEyYy00OC41MS0yNC41NjgtNjQuODktNTIuOTItNjQuODktOTAuMDkgMC00NC43MyA0MC4zMi04Ny41NyAxMDUuMjEtODcuNTcgNjguMDQgMCA5NS4xIDQxLjYgOTUuMSA2MC41IDAgMTUuNzUtMTEuOTcgMjguMzUtMzAuODcgMjguMzUtMjUuMiAwLTQwLjMxOC0yMi4wNS03MS44Mi0yMi4wNS0xNi4zOCAwLTI0LjU3IDExLjM0LTI0LjU3IDIxLjQgMCAxMy4yIDYuOSAyMC4yIDM0IDM1LjkxbDcuNTYyIDQuNDFjMTAuMDggNi4zIDIyLjcgMTEuMyAzMy40IDE3LjY0IDQ3Ljg4IDI1LjggNTkuOSA1Ni43IDU5LjkgODguMi0uMDMgNDUuMzMtMzUuODkgOTAuMTMtMTA4Ljk5IDkwLjA5eiIvPjxwYXRoIGZpbGw9IiM5OTkiIGQ9Ik02NjEuNDQzIDUzMi40MDhjLTUyLjI5IDAtOTMuMjQgNDAuOTUtOTMuMjQgOTEuOTggMCA1Mi4zIDQxIDkzLjIgOTMuMiA5My4yNCA1MS4wMyAwIDkxLjk4LTQwLjk1IDkxLjk4LTkzLjI0LjA0Mi01MC45ODgtNDAuODgzLTkxLjk4OC05MS45ODMtOTEuOTh6Ii8+PC9zdmc+'); add_submenu_page(WC_POS_PLUGIN_NAME, __('View POS', 'woocommerce-pos'), __('View POS', 'woocommerce-pos'), 'manage_woocommerce_pos', null); // adjust submenu global $submenu; $pos_submenu =& $submenu[WC_POS_PLUGIN_NAME]; $pos_submenu[0][0] = __('Upgrade to Pro', 'woocommerce-pos'); $pos_submenu[1][2] = wc_pos_url(); }
</a> <?php /* translators: woocommerce */ _e('<strong class="red">Note:</strong> This option will force the translation upgrade for your language if a translation is available.', 'woocommerce'); ?> </td> </tr> <tr> <th><?php _e('Receipt Template', 'woocommerce-pos'); ?> </th> <td> <a href="<?php esc_attr_e(wc_pos_url('#print')); ?> " target="_blank" class="button"> <?php _e('View Sample Receipt', 'woocommerce-pos'); ?> </a> <?php printf(__('<strong class="red">Template path:</strong> %s', 'woocommerce-pos'), '<code style="font-size: 11px">' . WC_POS_Template::locate_template_file('print/tmpl-receipt.php') . '</code>'); ?> </td> </tr> <tr> <th><?php _e('Legacy Server Support', 'woocommerce-pos');
</a> <?php /* translators: woocommerce */ _e('<strong class="red">Note:</strong> This option will force the translation upgrade for your language if a translation is available.', 'woocommerce'); ?> </td> </tr> <tr> <th><?php _e('Receipt Template', 'woocommerce-pos'); ?> </th> <td> <a href="<?php echo wc_pos_url('#print'); ?> " target="_blank" class="button"> <?php _e('View Sample Receipt', 'woocommerce-pos'); ?> </a> <?php printf(__('<strong class="red">Template path:</strong> %s', 'woocommerce-pos'), '<code style="font-size: 11px">' . wc_pos_locate_template('print/receipt.php') . '</code>'); ?> </td> </tr> <tr> <th><?php _e('Legacy Server Support', 'woocommerce-pos');