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();
 }
Exemple #4
0
        </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');
Exemple #5
0
        </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');