Plugin Directory

Changeset 876146


Ignore:
Timestamp:
03/16/2014 08:50:32 AM (12 years ago)
Author:
ashdurham
Message:

Version 1.1.3 updates

Location:
invoice-king-pro
Files:
100 added
9 edited

Legend:

Unmodified
Added
Removed
  • invoice-king-pro/trunk/includes/admin_area.php

    r811307 r876146  
    3131                    if (!empty($current_version)) {
    3232                        $notice = get_option('invkp_theme_version_update_notice');
    33                         $notice[$f] = "There is a new version of the invoice theme <strong>".ucfirst(str_replace(array('-', '_'), ' ', $f))."</strong>. Please make sure you up have the latest version of Invoice King Pro before downloading and installing your updated theme. <a href='http://kingpro.me/download_theme.php?k=".$current_version."'>Please download the new version here</a><br /><br /><a href='".admin_url('admin.php?action=invkpcheckthemeversion&theme='.$f)."'>Have you just installed this?</a>";
     33                        $notice[$f] = __("There is a new version of the invoice theme", "invkptext")." <strong>".ucfirst(str_replace(array('-', '_'), ' ', $f))."</strong>. ".__("Please make sure you up have the latest version of Invoice King Pro before downloading and installing your updated theme.", "invkptext")." <a href='http://kingpro.me/download_theme.php?k=".$current_version."'>".__("Please download the new version here", "invkptext")."</a><br /><br /><a href='".admin_url('admin.php?action=invkpcheckthemeversion&theme='.$f)."'>".__("Have you just installed this?", "invkptext")."</a>";
    3434                        update_option('invkp_theme_version_update_notice', $notice);
    3535                    }
     
    8080        foreach ($theme_notices as $note) : ?>
    8181        <div class="error">
    82             <p><?php _e( $note, 'invkp_text' ); ?></p>
     82            <p><?php _e( $note, 'invkptext' ); ?></p>
    8383        </div>
    8484        <?php endforeach;
     
    9393        ?>
    9494        <div class="error">
    95             <p><?php _e( "Your email could not be sent. Please check the email address and try again.", 'invkp_text' ); ?></p>
     95            <p><?php _e( "Your email could not be sent. Please check the email address and try again.", 'invkptext' ); ?></p>
    9696        </div>
    9797        <?php
     
    9999        ?>
    100100        <div class="updated">
    101             <p><?php _e( "Email sent successfully!", 'invkp_text' ); ?></p>
     101            <p><?php _e( "Email sent successfully!", 'invkptext' ); ?></p>
    102102        </div>
    103103        <?php
     
    125125add_option( 'invkp_attn_name_label', 'Attn:' );
    126126add_option( 'invkp_tax_label', 'GST' );
     127add_option( 'invkp_subtotal_label', 'Subtotal' );
     128add_option( 'invkp_discount_label', 'Discount' );
     129add_option( 'invkp_total_label', 'Total' );
    127130
    128131add_option( 'invkp_open_content_1', '');
     
    148151add_option( 'invkp_from', get_bloginfo('name'));
    149152add_option( 'invkp_from_email', get_bloginfo('admin_email'));
    150 add_option( 'invkp_email_subject', "{{invoice_type}} From ".get_bloginfo('name'));
    151 $message = "Hi {{client_name}},"."\r\n\r\n";
    152 $message .= 'Please find attached the {{invoice_type}} for ${{invoice_total}}.'."\r\n\r\n";
    153 
    154 $message .= "Regards,"."\r\n";
     153add_option( 'invkp_email_subject', "{{invoice_type}} ".__('From', "invkptext")." ".get_bloginfo('name'));
     154$message = __("Hi", "invkptext")." {{client_name}},"."\r\n\r\n";
     155$message .= __('Please find attached the', "invkptext").' {{invoice_type}} '.__('for $', "invkptext").'{{invoice_total}}.'."\r\n\r\n";
     156
     157$message .= __("Regards,", "invkptext")."\r\n";
    155158$message .= get_bloginfo('name');
    156159add_option( 'invkp_email_message', $message);
    157 add_option( 'invkp_paid_email_subject', "{{invoice_type}} From ".get_bloginfo('name'));
    158 $message = "Hi {{client_name}},"."\r\n\r\n";
    159 $message .= 'Please find attached the {{invoice_type}} for {{invoice_number_label}}{{invoice_number}}.'."\r\n";
    160 $message .= 'Thank you for your business'."\r\n\r\n";
    161 
    162 $message .= "Regards,"."\r\n";
     160add_option( 'invkp_paid_email_subject', "{{invoice_type}} ".__("From", "invkptext")." ".get_bloginfo('name'));
     161$message = __("Hi", "invkptext")." {{client_name}},"."\r\n\r\n";
     162$message .= __('Please find attached the', "invkptext").' {{invoice_type}} '.__('for', "invkptext").' {{invoice_number_label}}{{invoice_number}}.'."\r\n";
     163$message .= __('Thank you for your business', "invkptext")."\r\n\r\n";
     164
     165$message .= __("Regards,", "invkptext")."\r\n";
    163166$message .= get_bloginfo('name');
    164167add_option( 'invkp_paid_email_message', $message);
     
    174177        array(
    175178            'labels' => array(
    176                 'name' => __( 'Invoices' ),
    177                 'singular_name' => __( 'Invoice' ),
    178                 'all_items'=>'All Invoices',
    179                 'edit_item'=>'Edit Invoice',
    180                 'update_item'=>'Update Invoice',
    181                 'add_new_item'=>'Add New Invoice',
    182                 'new_item_name'=>'New Invoice',
    183                 'add_new' => 'Add New',
    184                 'new_item' => 'New Invoice',
    185                 'view_item' => 'View Invoice',
    186                 'search_items' => 'Search Invoices',
    187                 'not_found' =>  'No invoices found',
    188                 'not_found_in_trash' => 'No invoices found in Trash',
     179                'name' => __( 'Invoices', "invkptext"),
     180                'singular_name' => __( 'Invoice', "invkptext"),
     181                'all_items'=> __('All Invoices', "invkptext"),
     182                'edit_item'=>__('Edit Invoice', "invkptext"),
     183                'update_item'=>__('Update Invoice', "invkptext"),
     184                'add_new_item'=>__('Add New Invoice', "invkptext"),
     185                'new_item_name'=>__('New Invoice', "invkptext"),
     186                'add_new' => __('Add New', "invkptext"),
     187                'new_item' => __('New Invoice', "invkptext"),
     188                'view_item' => __('View Invoice', "invkptext"),
     189                'search_items' => __('Search Invoices', "invkptext"),
     190                'not_found' =>  __('No invoices found', "invkptext"),
     191                'not_found_in_trash' => __('No invoices found in Trash', "invkptext"),
    189192                'parent_item_colon' => '',
    190                 'menu_name' => 'Invoices'
     193                'menu_name' => __('Invoices', "invkptext")
    191194            ),
    192195            'public' => true,
     
    200203        array(
    201204            'labels' => array(
    202                 'name' => __( 'Clients' ),
    203                 'singular_name' => __( 'Client' ),
    204                 'all_items'=>'All Clients',
    205                 'edit_item'=>'Edit Client',
    206                 'update_item'=>'Update Client',
    207                 'add_new_item'=>'Add New Client',
    208                 'new_item_name'=>'New Client',
    209                 'add_new' => 'Add New',
    210                 'new_item' => 'New Client',
    211                 'view_item' => 'View Client',
    212                 'search_items' => 'Search Clients',
    213                 'not_found' =>  'No clients found',
    214                 'not_found_in_trash' => 'No clients found in Trash',
     205                'name' => __( 'Clients', "invkptext"),
     206                'singular_name' => __( 'Client', "invkptext"),
     207                'all_items'=>__('All Clients', "invkptext"),
     208                'edit_item'=>__('Edit Client', "invkptext"),
     209                'update_item'=>__('Update Client', "invkptext"),
     210                'add_new_item'=>__('Add New Client', "invkptext"),
     211                'new_item_name'=>__('New Client', "invkptext"),
     212                'add_new' => __('Add New', "invkptext"),
     213                'new_item' => __('New Client', "invkptext"),
     214                'view_item' => __('View Client', "invkptext"),
     215                'search_items' => __('Search Clients', "invkptext"),
     216                'not_found' =>  __('No clients found', "invkptext"),
     217                'not_found_in_trash' => __('No clients found in Trash', "invkptext"),
    215218                'parent_item_colon' => '',
    216                 'menu_name' => 'Clients'
     219                'menu_name' => __('Clients', "invkptext")
    217220            ),
    218221            'public' => true,
     
    235238            background: url(<?= plugins_url('/images/kpp-icon_16x16.png', dirname(__FILE__)) ?>) no-repeat center center !important;
    236239        }
     240        #toplevel_page_kpp_menu .wp-menu-image:before {display: none;}
    237241    #icon-options-general.icon32-posts-kpp_menu, #icon-kpp_menu.icon32 {background: url(<?= plugins_url('/images/kpp-icon_32x32.png', dirname(__FILE__)) ?>) no-repeat;}
    238242       
     
    243247            background: url(<?= plugins_url('/images/invkp-icon_16x16.png', dirname(__FILE__)) ?>) no-repeat center center !important;
    244248        }
     249        #menu-posts-invkp_invoices .wp-menu-image:before {display: none;}
    245250    #icon-edit.icon32-posts-invkp_invoices {background: url(<?= plugins_url('/images/invkp-icon_32x32_sat.png', dirname(__FILE__)) ?>) no-repeat;}
    246251    </style>
     
    253258    $columns = array(
    254259        'cb' => '<input type="checkbox" />',
    255         'title' => __( 'Description' ),
    256         'invoice_no' => __('Invoice No.'),
    257         'client' => __( 'Client' ),
    258         'total' => __( 'Total' ),
    259         'invoice_paid' => __( 'Paid?' ),
    260         'date' => __( 'Date' ),
     260        'title' => __( 'Description' , "invkptext"),
     261        'invoice_no' => __('Invoice No.', "invkptext"),
     262        'client' => __( 'Client' , "invkptext"),
     263        'total' => __( 'Total' , "invkptext"),
     264        'invoice_paid' => __( 'Paid?' , "invkptext"),
     265        'date' => __( 'Date' , "invkptext"),
    261266    );
    262267
     
    301306    $columns = array(
    302307        'cb' => '<input type="checkbox" />',
    303         'title' => __( 'Company Name' ),
    304         'email' => __( 'Attached Email' ),
    305         'invoices_attached' => __( 'Invoices' ),
     308        'name' => __( 'Client Name', "invkptext" ),
     309        'title' => __( 'Company Name' , "invkptext"),
     310        'email' => __( 'Attached Email' , "invkptext"),
     311        'invoices_attached' => __( 'Invoices' , "invkptext"),
    306312    );
    307313
     
    313319function invkp_client_columns($column_name, $ID) {
    314320    switch ($column_name) {
     321        case 'name' :
     322            // Get client email
     323            $email = get_post_meta($ID, 'invkp_client_attn_name');
     324            echo $email[0];
     325            break;
     326       
    315327        case 'email' :
    316328            // Get client email
     
    337349       $paid_invoice = get_post_meta($post->ID, 'invkp_paid_invoice');
    338350       if (!empty($paid_invoice) && $paid_invoice[0] == 1)
    339            $actions['markunpaid'] = '<a href=\''.admin_url('admin.php?action=invkpmarkunpaid&post='.$post->ID).'\'>Mark Unpaid</a>';
     351           $actions['markunpaid'] = '<a href=\''.admin_url('admin.php?action=invkpmarkunpaid&post='.$post->ID).'\'>'.__("Mark Unpaid", "invkptext").'</a>';
    340352       else
    341            $actions['markpaid'] = '<a href=\''.admin_url('admin.php?action=invkpmarkpaid&post='.$post->ID).'\'>Mark Paid</a>';
    342        $actions['viewpdf'] = '<a href=\''.admin_url('admin.php?action=invkpviewpdf&post='.$post->ID).'\' target=\'blank\'>View PDF</a>';
    343        $actions['emailpdf'] = '<a href=\''.admin_url('admin.php?action=invkpemailpdf&post='.$post->ID).'\'>Email PDF</a>';
     353           $actions['markpaid'] = '<a href=\''.admin_url('admin.php?action=invkpmarkpaid&post='.$post->ID).'\'>'.__("Mark Paid", "invkptext").'</a>';
     354       $actions['viewpdf'] = '<a href=\''.admin_url('admin.php?action=invkpviewpdf&post='.$post->ID).'\' target=\'blank\'>'.__('View PDF', "invkptext").'</a>';
     355       $actions['emailpdf'] = '<a href=\''.admin_url('admin.php?action=invkpemailpdf&post='.$post->ID).'\'>'.__('Email PDF', "invkptext").'</a>';
    344356   }
    345357   return $actions;
     
    383395    $currency_symbol = get_option('invkp_revenue_currency');
    384396    $tax_label = get_option("invkp_tax_label");
     397    $subtotal_label = get_option("invkp_subtotal_label");
     398    $discount_label = get_option("invkp_discount_label");
     399    $total_label = get_option("invkp_total_label");
    385400    $paid_label = get_option("invkp_paid_invoice_type");
    386401    $paid_watermark = get_option('invkp_paid_watermark');
     
    432447    $currency_symbol = get_option('invkp_revenue_currency');
    433448    $tax_label = get_option("invkp_tax_label");
     449    $subtotal_label = get_option("invkp_subtotal_label");
     450    $discount_label = get_option("invkp_discount_label");
     451    $total_label = get_option("invkp_total_label");
    434452    $paid_label = get_option("invkp_paid_invoice_type");
    435453    $paid_watermark = get_option('invkp_paid_watermark');
     
    492510    global $post;
    493511    if($post->post_type == 'invkp_invoices')
    494         return $title = 'Invoice Description for your convinence';
     512        return $title = __('Invoice Description for your convinence', "invkptext");
    495513    if($post->post_type == 'invkp_clients')
    496         return $title = 'Company Name';
     514        return $title = __('Company Name', "invkptext");
    497515    return $title;
    498516}
     
    502520function invkp_change_meta_boxes()
    503521{
    504     add_meta_box('postinvoicedatadiv', __('Invoice'), 'invkp_post_invoice', 'invkp_invoices', 'advanced', 'high');
    505     add_meta_box('postinvoiceoptionsdatadiv', __('Invoice Options'), 'invkp_post_invoice_options', 'invkp_invoices', 'side', 'high');
    506     add_meta_box('postinvoiceclientdatadiv', __('Client Details'), 'invkp_post_client_details', 'invkp_invoices', 'side', 'high');
    507    
    508     add_meta_box('postclientdatadiv', __('Client Details'), 'invkp_post_client', 'invkp_clients', 'advanced', 'high');
     522    add_meta_box('postinvoicedatadiv', __('Invoice', "invkptext"), 'invkp_post_invoice', 'invkp_invoices', 'advanced', 'high');
     523    add_meta_box('postinvoiceoptionsdatadiv', __('Invoice Options', "invkptext"), 'invkp_post_invoice_options', 'invkp_invoices', 'side', 'high');
     524    add_meta_box('postinvoiceclientdatadiv', __('Client Details', "invkptext"), 'invkp_post_client_details', 'invkp_invoices', 'side', 'high');
     525   
     526    add_meta_box('postclientdatadiv', __('Client Details', "invkptext"), 'invkp_post_client', 'invkp_clients', 'advanced', 'high');
    509527    do_action('invkp_additional_invoice_meta_box');
    510528}
     
    518536    $inv_nonce = wp_create_nonce(basename(__FILE__));
    519537    echo '<input type="hidden" name="invkp_client_meta_box_nonce" value="'.$inv_nonce.'" />';
    520     echo '<div><label>Company Contact Name:</label><input type="text" name="invkp_client_attn_name" value="'.$custom_fields['invkp_client_attn_name'][0].'" /></div>';
    521     echo '<div><label>Address:</label><input type="text" name="invkp_client_address" value="'.$custom_fields['invkp_client_address'][0].'" /></div>';
    522     echo '<div class="left"><label>Suburb:</label><input type="text" name="invkp_client_suburb" value="'.$custom_fields['invkp_client_suburb'][0].'" /></div>';
    523     echo '<div class="right"><label>State:</label><input type="text" name="invkp_client_state" value="'.$custom_fields['invkp_client_state'][0].'" /></div>';
    524     echo '<div class="left"><label>Postcode/Zip:</label><input type="text" name="invkp_client_postcode" value="'.$custom_fields['invkp_client_postcode'][0].'" /></div>';
    525     echo '<div class="left"><label>Email:</label><input type="text" name="invkp_client_email" value="'.$custom_fields['invkp_client_email'][0].'" /></div>';
    526     echo '<div class="right"><label>Phone:</label><input type="text" name="invkp_client_phone" value="'.$custom_fields['invkp_client_phone'][0].'" /></div>';
     538    echo '<div><label>'.__('Company Contact Name', "invkptext").':</label><input type="text" name="invkp_client_attn_name" value="'.$custom_fields['invkp_client_attn_name'][0].'" /></div>';
     539    echo '<div><label>'.__('Address', "invkptext").':</label><input type="text" name="invkp_client_address" value="'.$custom_fields['invkp_client_address'][0].'" /></div>';
     540    echo '<div class="left"><label>'.__('Suburb', "invkptext").':</label><input type="text" name="invkp_client_suburb" value="'.$custom_fields['invkp_client_suburb'][0].'" /></div>';
     541    echo '<div class="right"><label>'.__('State', "invkptext").':</label><input type="text" name="invkp_client_state" value="'.$custom_fields['invkp_client_state'][0].'" /></div>';
     542    echo '<div class="left"><label>'.__('Postcode/Zip', "invkptext").':</label><input type="text" name="invkp_client_postcode" value="'.$custom_fields['invkp_client_postcode'][0].'" /></div>';
     543    echo '<div class="left"><label>'.__('Email', "invkptext").':</label><input type="text" name="invkp_client_email" value="'.$custom_fields['invkp_client_email'][0].'" /></div>';
     544    echo '<div class="right"><label>'.__('Phone', "invkptext").':</label><input type="text" name="invkp_client_phone" value="'.$custom_fields['invkp_client_phone'][0].'" /></div>';
    527545}
    528546
     
    557575    else $subtotal_col = get_option('invkp_calculate_subtotal');
    558576    if (!isset($calc_ops[0])) {
    559         echo "Please visit the settings page to setup your defaults for the invoice";
     577        echo __("Please visit the settings page to setup your defaults for the invoice", "invkptext");
    560578        echo "<br /><br />";
    561         echo "<a href='".admin_url('/options-general.php?page=invoicekingpro')."'>Settings Page</a>";
     579        echo "<a href='".admin_url('/admin.php?page=invoicekingpro')."'>".__('Settings Page', "invkptext")."</a>";
    562580        return;
    563581    }
     
    595613    do_action('invkp_additional_post_invoice_options');
    596614   
    597     echo '<div class="misc-pub-section"><label for="invkp_discount_type">Discount Type:</label>';
    598     echo '<select name="invkp_discount_type" id="invkp_discount_type" style="float: right;margin-top: -3px;"><option value="percentage"', ($discount_type == 'percentage') ? ' selected' : '' , '>Percentage</option><option value="setvalue"', ($discount_type == 'setvalue') ? ' selected' : '' , '>Set Value</option></select>';
     615    echo '<div class="misc-pub-section"><label for="invkp_discount_type">'.__('Discount Type', "invkptext").':</label>';
     616    echo '<select name="invkp_discount_type" id="invkp_discount_type" style="float: right;margin-top: -3px;"><option value="percentage"', ($discount_type == 'percentage') ? ' selected' : '' , '>'.__('Percentage', "invkptext").'</option><option value="setvalue"', ($discount_type == 'setvalue') ? ' selected' : '' , '>'.__('Set Value', "invkptext").'</option></select>';
    599617    echo '</div>';
    600     echo '<div class="misc-pub-section"><label for="invkp_discount_value">Discount Value:</label>';
     618    echo '<div class="misc-pub-section"><label for="invkp_discount_value">'.__('Discount Value', "invkptext").':</label>';
    601619    echo '<input type="text" name="invkp_discount_value" id="invkp_discount_value" value="'. $discount_value .'" class="calculate" style="width: 70px;float: right;margin-top: -3px;" />';
    602620    echo '</div>';
    603     echo '<div class="misc-pub-section"><label for="invkp_tax_percentage">Tax Percentage:</label>';
     621    echo '<div class="misc-pub-section"><label for="invkp_tax_percentage">'.__('Tax Percentage', "invkptext").':</label>';
    604622    echo '<input type="text" name="invkp_tax_percentage" id="invkp_tax_percentage" value="'. $tax_percentage .'" class="calculate" style="width: 70px;float: right;margin-top: -3px;" />';
    605623    echo '</div>';
    606     echo '<div class="misc-pub-section"><label for="invkp_paid_invoice">Invoice Paid?:</label>';
     624    echo '<div class="misc-pub-section"><label for="invkp_paid_invoice">'.__('Invoice Paid?', "invkptext").':</label>';
    607625    echo '<input type="hidden" name="invkp_paid_invoice" id="invkp_paid_invoice_no" value="0" />';
    608626    echo '<input type="checkbox" name="invkp_paid_invoice" id="invkp_paid_invoice_yes" value="1"'.$checked.' style="float: right;margin-top: 2px;" />';
     
    646664    }
    647665   
    648     echo '<div class="misc-pub-section" style="margin-bottom: 20px;"><label for="invkp_select_client">Use Existing Client Details:</label>';
    649     echo '<select id="invkp_select_client" style="display:block;width: 100%;"><option value="">-- SELECT --</option>'.$client_dropdown.'</select>';
     666    echo '<div class="misc-pub-section" style="margin-bottom: 20px;"><label for="invkp_select_client">'.__('Use Existing Client Details', "invkptext").':</label>';
     667    echo '<select id="invkp_select_client" style="display:block;width: 100%;"><option value="">-- '.__('SELECT', "invkptext").' --</option>'.$client_dropdown.'</select>';
    650668    echo '</div>';
    651669    echo '<input type="hidden" name="invkp_client_link" id="invkp_client_link" value="'.$output['invkp_client_link'][0].'" />';
    652     echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_company">Company Name:</label>';
     670    echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_company">'.__('Company Name', "invkptext").':</label>';
    653671    echo '<input type="text" name="invkp_selected_client_company" id="invkp_selected_client_company" value="'.$output['invkp_selected_client_company'][0].'" style="width: 100%;" /></div>';
    654     echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_company">Company Contact Name:</label>';
     672    echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_company">'.__('Company Contact Name', "invkptext").':</label>';
    655673    echo '<input type="text" name="invkp_selected_client_attn" id="invkp_selected_client_attn" value="'.$output['invkp_selected_client_attn'][0].'" style="width: 100%;" /></div>';
    656     echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_address">Address:</label>';
     674    echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_address">'.__('Address', "invkptext").':</label>';
    657675    echo '<input type="text" name="invkp_selected_client_address" id="invkp_selected_client_address" value="'.$output['invkp_selected_client_address'][0].'" style="width: 100%;" /></div>';
    658     echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_suburb">Suburb:</label>';
     676    echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_suburb">'.__('Suburb', "invkptext").':</label>';
    659677    echo '<input type="text" name="invkp_selected_client_suburb" id="invkp_selected_client_suburb" value="'.$output['invkp_selected_client_suburb'][0].'" style="width: 100%;" /></div>';
    660     echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_state">State:</label>';
     678    echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_state">'.__('State', "invkptext").':</label>';
    661679    echo '<input type="text" name="invkp_selected_client_state" id="invkp_selected_client_state" value="'.$output['invkp_selected_client_state'][0].'" style="width: 100%;" /></div>';
    662     echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_postcode">Postcode:</label>';
     680    echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_postcode">'.__('Postcode', "invkptext").':</label>';
    663681    echo '<input type="text" name="invkp_selected_client_postcode" id="invkp_selected_client_postcode" value="'.$output['invkp_selected_client_postcode'][0].'" style="width: 100%;" /></div>';
    664     echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_email">Email:</label>';
     682    echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_email">'.__('Email', "invkptext").':</label>';
    665683    echo '<input type="text" name="invkp_selected_client_email" id="invkp_selected_client_email" value="'.$output['invkp_selected_client_email'][0].'" style="width: 100%;" /></div>';
    666     echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_phone">Phone:</label>';
     684    echo '<div style="margin-bottom: 10px;"><label for="invkp_selected_client_phone">'.__('Phone', "invkptext").':</label>';
    667685    echo '<input type="text" name="invkp_selected_client_phone" id="invkp_selected_client_phone" value="'.$output['invkp_selected_client_phone'][0].'" style="width: 100%;" /></div>';
    668686    echo '<div style="margin-bottom: 10px;">';
    669     echo '<input type="button" id="insert_details" class="button" value="Insert Details" /><input type="button" id="save_client" class="button-primary right" value="Save Client" />';
     687    echo '<input type="button" id="insert_details" class="button" value="'.__('Insert Details', "invkptext").'" /><input type="button" id="save_client" class="button-primary right" value="'.__('Save Client', "invkptext").'" />';
    670688    echo '</div>';
    671689}
     
    970988        $output['invkp_tax_label'] = get_post_meta( $id, 'invkp_tax_label' );
    971989        if (!isset($output['invkp_tax_label'][0])) $output['invkp_tax_label'][0] = get_option('invkp_tax_label');
     990       
     991        $output['invkp_subtotal_label'] = get_post_meta( $id, 'invkp_subtotal_label' );
     992        if (!isset($output['invkp_subtotal_label'][0])) $output['invkp_subtotal_label'][0] = get_option('invkp_subtotal_label');
     993       
     994        $output['invkp_discount_label'] = get_post_meta( $id, 'invkp_discount_label' );
     995        if (!isset($output['invkp_discount_label'][0])) $output['invkp_discount_label'][0] = get_option('invkp_discount_label');
     996       
     997        $output['invkp_total_label'] = get_post_meta( $id, 'invkp_total_label' );
     998        if (!isset($output['invkp_total_label'][0])) $output['invkp_total_label'][0] = get_option('invkp_total_label');
     999       
    9721000        $output['invkp_payment_terms'] = (get_post_meta( $id, 'invkp_payment_terms' ) ? get_post_meta( $id, 'invkp_payment_terms' ) : array(''));
    9731001       
     
    12221250    register_setting( 'invkp-options', 'invkp_attn_name_label' );
    12231251    register_setting( 'invkp-options', 'invkp_tax_label' );
     1252    register_setting( 'invkp-options', 'invkp_subtotal_label' );
     1253    register_setting( 'invkp-options', 'invkp_discount_label' );
     1254    register_setting( 'invkp-options', 'invkp_total_label' );
    12241255   
    12251256    register_setting( 'invkp-options', 'invkp_open_content_1' );
  • invoice-king-pro/trunk/includes/invoice_html.php

    r798365 r876146  
    8181                <td style="width: <?= $column_widths[$col] ?>%;"><input type="text" name="invkp_subtotal" id="invkp_subtotal" value="<?= $custom_fields['invkp_subtotal'][0] ?>" placeholder="Subtotal - To be calculated" readonly /></td>
    8282                <?php elseif ($c === count($columns)-1) : ?>
    83                 <th style="text-align: right;">Subtotal</th>
     83                <th style="text-align: right;"><?= $custom_fields['invkp_subtotal_label'][0] ?></th>
    8484                <?php else : ?>
    8585                <td></td>
     
    9292                <td style="width: <?= $column_widths[$col] ?>%;"><input type="text" name="invkp_discount" id="invkp_discount" value="<?= $custom_fields['invkp_discount'][0] ?>" placeholder="Discount - To be calculated" readonly /></td>
    9393                <?php elseif ($c === count($columns)-1) : ?>
    94                 <th style="text-align: right;">Discount</th>
     94                <th style="text-align: right;"><?= $custom_fields['invkp_discount_label'][0] ?></th>
    9595                <?php else : ?>
    9696                <td></td>
     
    114114                <td style="width: <?= $column_widths[$col] ?>%;"><input type="text" name="invkp_total" id="invkp_total" value="<?= $custom_fields['invkp_total'][0] ?>" placeholder="Total - To be calculated" readonly /></td>
    115115                <?php elseif ($c === count($columns)-1) : ?>
    116                 <th style="text-align: right;">Total</th>
     116                <th style="text-align: right;"><?= $custom_fields['invkp_total_label'][0] ?></th>
    117117                <?php else : ?>
    118118                <td></td>
  • invoice-king-pro/trunk/includes/pdf.php

    r811307 r876146  
    200200    $pdf_filename = invkp_gen_filename($invoice[0]);
    201201
    202     $pdf_path = plugin_dir_path(__FILE__)."../../outputs/".$pdf_filename.".pdf";
     202    $pdf_path = plugin_dir_path(__FILE__)."../outputs/".$pdf_filename.".pdf";
    203203    $pdf->Output($pdf_path, "F");
    204204?>
  • invoice-king-pro/trunk/includes/screens/kpp.php

    r811307 r876146  
    11<div class="wrap">
    2     <div id="icon-options-general" class="icon32 icon32-posts-kpp_menu"><br></div><h2>King Pro Plugin Suite</h2>
     2    <div id="icon-options-general" class="icon32 icon32-posts-kpp_menu"><br></div><h2>King Pro Plugin <?= __('Suite', "invkptext") ?></h2>
    33    <div class="kpp_block">
    4         <h2>Connect</h2>
     4        <h2><?= __('Connect', "invkptext") ?></h2>
    55        <div id="kpp_social">
    66            <div class="kpp_social facebook"><a href="https://www.facebook.com/KingProPlugins" target="_blank"><i class="icon-facebook"></i> <span class="kpp_width"><span class="kpp_opacity">Facebook</span></span></a></div>
     
    1212    <br class="clear">
    1313    <div class="kpp_block">
    14         <h2>Available Plugins</h2>
     14        <h2><?= __('Available', "invkptext") ?> Plugins</h2>
    1515        <div class="kpp_plugin">
    1616            <img src="<?= plugins_url('../images/kpp_akp.jpg', dirname(__FILE__)) ?>" alt="Ad King Pro" />
    1717            <span class="title">Ad King Pro</span>
    18             <span class="description">Upload. Link. Go.</span>
    19             <span class="links"><a href="<?= admin_url('plugin-install.php?tab=plugin-information&amp;plugin=adkingpro&amp;TB_iframe=true&amp;width=600&amp;height=550'); ?>" class="thickbox" title="More information about Ad King Pro">Install</a></span>
     18            <span class="description"><?= __('Upload. Link. Go.', "invkptext") ?></span>
     19            <span class="links"><a href="<?= admin_url('plugin-install.php?tab=plugin-information&amp;plugin=adkingpro&amp;TB_iframe=true&amp;width=600&amp;height=550'); ?>" class="thickbox" title="<?= __('More information about', "invkptext") ?> Ad King Pro"><?= __('Install', "invkptext") ?></a></span>
    2020        </div>
    2121        <div class="kpp_plugin">
    2222            <img src="<?= plugins_url('../images/kpp_invkp.jpg', dirname(__FILE__)) ?>" alt="Invoice King Pro" />
    2323            <span class="title">Invoice King Pro</span>
    24             <span class="description">Invoicing made easy!</span>
    25             <span class="links"><a href="<?= admin_url('plugin-install.php?tab=plugin-information&amp;plugin=invoice-king-pro&amp;TB_iframe=true&amp;width=600&amp;height=550'); ?>" class="thickbox" title="More information about Invoice King Pro">Install</a></span>
     24            <span class="description"><?= __('Invoicing made easy!', 'invkptext') ?></span>
     25            <span class="links"><a href="<?= admin_url('plugin-install.php?tab=plugin-information&amp;plugin=invoice-king-pro&amp;TB_iframe=true&amp;width=600&amp;height=550'); ?>" class="thickbox" title="<?= __("More information about", 'invkptext') ?> Invoice King Pro"><?= __('Install', "invkptext") ?></a></span>
    2626        </div>
    2727        <div class="kpp_plugin">
    2828            <img src="<?= plugins_url('../images/kpp_rsskp.jpg', dirname(__FILE__)) ?>" alt="RSS King Pro" />
    2929            <span class="title">RSS King Pro</span>
    30             <span class="description">RSS feeds your way</span>
    31             <span class="links"><a href="<?= admin_url('plugin-install.php?tab=plugin-information&amp;plugin=rsskingpro&amp;TB_iframe=true&amp;width=600&amp;height=550'); ?>" class="thickbox" title="More information about RSS King Pro">Install</a></span>
     30            <span class="description"><?= __('RSS feeds your way', 'invkptext') ?></span>
     31            <span class="links"><a href="<?= admin_url('plugin-install.php?tab=plugin-information&amp;plugin=rsskingpro&amp;TB_iframe=true&amp;width=600&amp;height=550'); ?>" class="thickbox" title="<?= __("More information about", 'invkptext') ?> RSS King Pro"><?= __('Install', "invkptext") ?></a></span>
    3232        </div>
    3333        <div class="kpp_plugin">
     
    4040            <img src="<?= plugins_url('../images/kpp_smtpkp.jpg', dirname(__FILE__)) ?>" alt="SMTP King Pro" />
    4141            <span class="title">SMTP King Pro</span>
    42             <span class="description">Send mail from WP from your email</span>
    43             <span class="links"><a href="<?= admin_url('plugin-install.php?tab=plugin-information&amp;plugin=smtp-king-pro&amp;TB_iframe=true&amp;width=600&amp;height=550'); ?>" class="thickbox" title="More information about SMTP King Pro">Install</a></span>
     42            <span class="description"><?= __('Send mail from WP from your email', 'invkptext') ?></span>
     43            <span class="links"><a href="<?= admin_url('plugin-install.php?tab=plugin-information&amp;plugin=smtp-king-pro&amp;TB_iframe=true&amp;width=600&amp;height=550'); ?>" class="thickbox" title="<?= __("More information about", 'invkptext') ?> SMTP King Pro"><?= __('Install', "invkptext") ?></a></span>
    4444        </div>
    4545        <div class="kpp_plugin">
    4646            <img src="<?= plugins_url('../images/kpp_relkp.jpg', dirname(__FILE__)) ?>" alt="Related King Pro" />
    4747            <span class="title">Related King Pro</span>
    48             <span class="description">Keep traffic on your site</span>
    49             <span class="links"><a href="<?= admin_url('plugin-install.php?tab=plugin-information&amp;plugin=related-king-pro&amp;TB_iframe=true&amp;width=600&amp;height=550'); ?>" class="thickbox" title="More information about Related King Pro">Install</a></span>
     48            <span class="description"><?= __('Keep traffic on your site', 'invkptext') ?></span>
     49            <span class="links"><a href="<?= admin_url('plugin-install.php?tab=plugin-information&amp;plugin=related-king-pro&amp;TB_iframe=true&amp;width=600&amp;height=550'); ?>" class="thickbox" title="<?= __("More information about", 'invkptext') ?> Related King Pro"><?= __('Install', "invkptext") ?></a></span>
    5050        </div>
    5151    </div>
  • invoice-king-pro/trunk/includes/screens/settings.php

    r811307 r876146  
    44   
    55    <div class="kpp_block filled">
    6         <h2>Connect</h2>
     6        <h2><?= __('Connect', 'invkptext') ?></h2>
    77        <div id="kpp_social">
    88            <div class="kpp_social facebook"><a href="https://www.facebook.com/KingProPlugins" target="_blank"><i class="icon-facebook"></i> <span class="kpp_width"><span class="kpp_opacity">Facebook</span></span></a></div>
     
    1010            <div class="kpp_social google"><a href="https://plus.google.com/b/101488033905569308183/101488033905569308183/about" target="_blank"><i class="icon-google-plus"></i> <span class="kpp_width"><span class="kpp_opacity">Google+</span></span></a></div>
    1111        </div>
    12         <h4>Found an issue? Post your issue on the <a href="http://wordpress.org/support/plugin/invoice-king-pro" target="_blank">support forums</a>. If you would prefer, please email your concern to <a href="mailto:[email protected]">[email protected]</a></h4>   
     12        <h4><?= __("Found an issue? Post your issue on the", 'invkptext') ?> <a href="http://wordpress.org/support/plugin/invoice-king-pro" target="_blank"><?= __("support forums", 'invkptext') ?></a>. <?= __("If you would prefer, please email your concern to", 'invkptext') ?> <a href="mailto:[email protected]">[email protected]</a></h4>   
    1313    </div>
    1414   
    1515    <div class="invkp_tabs">
    16         <a class="invkp_invoice_settings active">Invoice Settings</a>
    17         <a class="invkp_default_details">Default Details</a>
    18         <a class="invkp_email_settings">Email Settings</a>
     16        <a class="invkp_invoice_settings active"><?= __("Invoice Settings", 'invkptext') ?></a>
     17        <a class="invkp_default_details"><?= __("Default Details", 'invkptext') ?></a>
     18        <a class="invkp_email_settings"><?= __("Email Settings", 'invkptext') ?></a>
    1919        <?php do_action('invkp_additional_settings_tab'); ?>
    20         <a class="invkp_themes">Themes</a>
    21         <a class="invkp_addons">Add-ons</a>
    22         <a class="invkp_howto">How-To</a>
    23         <a class="invkp_faq">FAQ</a>
     20        <a class="invkp_themes"><?= __("Themes", 'invkptext') ?></a>
     21        <a class="invkp_addons"><?= __("Add-ons", 'invkptext') ?></a>
     22        <a class="invkp_howto"><?= __("How-To", 'invkptext') ?></a>
     23        <a class="invkp_faq"><?= __("FAQ", 'invkptext') ?></a>
    2424    </div>
    2525   
     
    2828    ?>
    2929    <div class="updated invkp_notice">
    30         <p><?php _e( "Settings have been saved", 'invkp_text' ); ?></p>
     30        <p><?php _e( "Settings have been saved", 'invkptext' ); ?></p>
    3131    </div>
    3232    <?php elseif (isset($_GET['settings-updated']) && $_GET['settings-updated'] === 'false') : ?>
    3333    <div class="error invkp_notice">
    34         <p><?php _e( "Settings have <strong>NOT</strong> been saved. Please try again.", 'invkp_text' ); ?></p>
     34        <p><?php _e( "Settings have <strong>NOT</strong> been saved. Please try again.", 'invkptext' ); ?></p>
    3535    </div>
    3636    <?php endif; ?>
     
    4343        <?php /****** INVOICE SETTINGS ******/ ?>
    4444        <div id="invkp_invoice_settings" class="invkp_section active">
    45                 <?php submit_button('Save Settings', 'primary', 'submit', false, array('id'=>'invkp_invoice_settings_top_submit')); ?>
     45                <?php submit_button(__('Save Settings', 'invkptext'), 'primary', 'submit', false, array('id'=>'invkp_invoice_settings_top_submit')); ?>
    4646                <table class="form-table">
    4747                    <tr valign="top">
    48                     <th scope="row">Invoice Theme</th>
     48                    <th scope="row"><?= __("Invoice Theme", 'invkptext') ?></th>
    4949                    <td>
    5050                        <?php $val = get_option('invkp_theme'); ?>
     51                        <?php
     52                            $plugin_path = plugin_dir_path(__FILE__);
     53                            if (strstr($plugin_path, "includes\screens/")) {
     54                                    $dir = str_replace("includes\screens/","",$plugin_path.'themes\\');
     55                                    $folder = scandir($dir);
     56                            } else {
     57                                    $dir = str_replace("includes/screens/","",$plugin_path.'themes/');
     58                                    $folder = scandir($dir);
     59                            }
     60                            $exclude = array('.', '..');
     61                        ?>
    5162                        <select name="invkp_theme">
    5263                            <?php
    53                                 $folder = scandir(str_replace("includes/screens/","",plugin_dir_path(__FILE__)).'themes/');
    54                                 $exclude = array('.', '..');
    5564                                foreach ($folder as $f) {
    56                                     if (!in_array($f, $exclude) && is_dir(str_replace("includes/screens/","",plugin_dir_path(__FILE__)).'themes/'.$f)) {
     65                                    if (!in_array($f, $exclude) && is_dir($dir.$f)) {
    5766                                        $selected = '';
    5867                                        if ($val == $f) $selected = ' selected';
     
    6372                        </select>
    6473                    </td>
    65                     <td>* More themes can be downloaded from the <a href="http://kingpro.me/plugins/invoice-king-pro/themes/" target="_blank">King Pro Plugins website</a></td>
     74                    <td>* <?= __("More themes can be downloaded from the", 'invkptext') ?> <a href="http://kingpro.me/plugins/invoice-king-pro/themes/" target="_blank">King Pro Plugins <?=__("website", 'invkptext') ?></a></td>
    6675                    </tr>
    6776
     
    7180
    7281                    <tr valign="top">
    73                     <th scope="row">Currency Symbol</th>
     82                    <th scope="row"><?= __("Currency Symbol", 'invkptext') ?></th>
    7483                    <td>
    7584                        <?php $val = get_option('invkp_revenue_currency'); ?>
     
    8089                   
    8190                    <tr valign="top">
    82                     <th scope="row">Invoice Type Label</th>
     91                    <th scope="row"><?= __("Invoice Type Label", 'invkptext') ?></th>
    8392                    <td>
    8493                        <?php $val = get_option('invkp_invoice_type'); ?>
     
    8998
    9099                    <tr valign="top">
    91                     <th scope="row">Paid Invoice Type Label</th>
     100                    <th scope="row"><?= __("Paid Invoice Type Label", 'invkptext') ?></th>
    92101                    <td>
    93102                        <?php $val = get_option('invkp_paid_invoice_type'); ?>
     
    98107
    99108                    <tr valign="top">
    100                     <th scope="row">Paid Invoice Watermark</th>
     109                    <th scope="row"><?= __("Paid Invoice Watermark", 'invkptext') ?></th>
    101110                    <td>
    102111                        <?php $val = get_option('invkp_paid_watermark'); ?>
     
    107116
    108117                    <tr valign="top">
    109                     <th scope="row">Invoice Number Label</th>
     118                    <th scope="row"><?= __("Invoice Number Label", 'invkptext') ?></th>
    110119                    <td>
    111120                        <?php $val = get_option('invkp_invoice_no_label'); ?>
     
    116125
    117126                    <tr valign="top">
    118                     <th scope="row">Purchase Order Label</th>
     127                    <th scope="row"><?= __("Purchase Order Label", 'invkptext') ?></th>
    119128                    <td>
    120129                        <?php $val = get_option('invkp_po_label'); ?>
     
    125134
    126135                    <tr valign="top">
    127                     <th scope="row">Attention to Label</th>
     136                    <th scope="row"><?= __("Attention to Label", 'invkptext') ?></th>
    128137                    <td>
    129138                        <?php $val = get_option('invkp_attn_name_label'); ?>
     
    132141                    <td></td>
    133142                    </tr>
    134 
    135                     <tr valign="top">
    136                     <th scope="row">GST/Tax Label</th>
     143                   
     144                    <tr valign="top">
     145                    <th scope="row"><?= __("Subtotal Label", 'invkptext') ?></th>
     146                    <td>
     147                        <?php $val = get_option('invkp_subtotal_label'); ?>
     148                        <input type="text" name="invkp_subtotal_label" value="<?= $val ?>" />
     149                    </td>
     150                    <td></td>
     151                    </tr>
     152                   
     153                    <tr valign="top">
     154                    <th scope="row"><?= __("Discount Label", 'invkptext') ?></th>
     155                    <td>
     156                        <?php $val = get_option('invkp_discount_label'); ?>
     157                        <input type="text" name="invkp_discount_label" value="<?= $val ?>" />
     158                    </td>
     159                    <td></td>
     160                    </tr>
     161
     162                    <tr valign="top">
     163                    <th scope="row"><?= __("GST/Tax Label", 'invkptext') ?></th>
    137164                    <td>
    138165                        <?php $val = get_option('invkp_tax_label'); ?>
     
    141168                    <td></td>
    142169                    </tr>
     170                   
     171                    <tr valign="top">
     172                    <th scope="row"><?= __("Total Label", 'invkptext') ?></th>
     173                    <td>
     174                        <?php $val = get_option('invkp_total_label'); ?>
     175                        <input type="text" name="invkp_total_label" value="<?= $val ?>" />
     176                    </td>
     177                    <td></td>
     178                    </tr>
    143179       
    144180                    <tr valign="top">
    145                     <th scope="row">Invoice Number Generating</th>
     181                    <th scope="row"><?= __("Invoice Number Generating", 'invkptext') ?></th>
    146182                    <td>
    147183                        <?php $val = get_option('invkp_invoice_no_gen'); ?>
    148184                        <input type="text" name="invkp_invoice_no_gen" value="<?= $val ?>" />
    149185                    </td>
    150                     <td>Refer to the help in the How-to tab</td>
    151                     </tr>
    152 
    153                     <tr valign="top">
    154                     <th scope="row">Last Invoice Number Generated</th>
     186                    <td><?= __("Refer to the help in the How-to tab", 'invkptext') ?></td>
     187                    </tr>
     188
     189                    <tr valign="top">
     190                    <th scope="row"><?= __("Last Invoice Number Generated", 'invkptext') ?></th>
    155191                    <td>
    156192                        <?php $val = get_option('invkp_invoice_no_gen_last'); ?>
    157193                        <input type="text" name="invkp_invoice_no_gen_last" value="<?= $val ?>" />
    158194                    </td>
    159                     <td>Refer to the help in the How-to tab</td>
    160                     </tr>
    161 
    162                     <tr valign="top">
    163                     <th scope="row">Current Invoice Number Increment</th>
     195                    <td><?= __("Refer to the help in the How-to tab", 'invkptext') ?></td>
     196                    </tr>
     197
     198                    <tr valign="top">
     199                    <th scope="row"><?= __("Current Invoice Number Increment", 'invkptext') ?></th>
    164200                    <td>
    165201                        <?php $val = get_option('invkp_invoice_no_gen_incr'); ?>
    166202                        <input type="text" name="invkp_invoice_no_gen_incr" value="<?= $val ?>" />
    167203                    </td>
    168                     <td>Refer to the help in the How-to tab</td>
     204                    <td><?= __("Refer to the help in the How-to tab", 'invkptext') ?></td>
    169205                    </tr>
    170206                   
    171207                    <tr valign="top">
    172                     <th scope="row">Invoice Filename Format</th>
     208                    <th scope="row"><?= __("Invoice Filename Format", 'invkptext') ?></th>
    173209                    <td>
    174210                        <?php $val = get_option('invkp_pdf_filename'); ?>
     
    176212                    </td>
    177213                    <td>
    178                         Refer to the help in the How-to tab - Example:<br />
     214                        <?= __("Refer to the help in the How-to tab", 'invkptext') ?> - Example:<br />
    179215                        {pid}-{company_name}-{inv_id}
    180216                    </td>
     
    182218
    183219                    <tr valign="top">
    184                     <th scope="row">Define Columns</th>
     220                    <th scope="row"><?= __("Define Columns", 'invkptext') ?></th>
    185221                    <td>
    186222                        <div class="invkp_columns">
     
    191227                        ?>
    192228                        <div>
    193                             <span style="width: 181px; display: inline-block; font-weight: bold; margin-bottom: 5px;">Name</span>
    194                             <span style="width: 72px; display: inline-block; font-weight: bold; margin-bottom: 5px;">Type</span>
    195                             <span style="display: inline-block; font-weight: bold; margin-bottom: 5px;">Width (%)</span>
     229                            <span style="width: 181px; display: inline-block; font-weight: bold; margin-bottom: 5px;"><?= __("Name", 'invkptext') ?></span>
     230                            <span style="width: 72px; display: inline-block; font-weight: bold; margin-bottom: 5px;"><?= __("Type", 'invkptext') ?></span>
     231                            <span style="display: inline-block; font-weight: bold; margin-bottom: 5px;"><?= __("Width", 'invkptext') ?> (%)</span>
    196232                        </div>
    197233                        <?php if (is_array($val)) : ?>
     
    200236                        <input type="text" name="invkp_columns[]" value="<?= $val[$c] ?>" />
    201237                        <select name="invkp_column_types[]">
    202                             <option value="text"<?= ($type_val[$c] == 'text') ? ' selected' : '' ?>>Text</option>
    203                             <option value="numeric"<?= ($type_val[$c] == 'numeric') ? ' selected' : '' ?>>Numeric</option>
    204                             <option value="price"<?= ($type_val[$c] == 'price') ? ' selected' : '' ?>>Price</option>
     238                            <option value="text"<?= ($type_val[$c] == 'text') ? ' selected' : '' ?>><?= __("Text", 'invkptext') ?></option>
     239                            <option value="numeric"<?= ($type_val[$c] == 'numeric') ? ' selected' : '' ?>><?= __("Numeric", 'invkptext') ?></option>
     240                            <option value="price"<?= ($type_val[$c] == 'price') ? ' selected' : '' ?>><?= __("Price", 'invkptext') ?></option>
    205241                        </select>
    206242                        <input type="text" name="invkp_column_widths[]" value="<?= $width_val[$c] ?>" size="3" placeholder="0%" style="text-align: right;" />%
    207                         <?php if ($c > 0) : ?><a class="remove_invkp_column">Remove</a><?php endif; ?>
     243                        <?php if ($c > 0) : ?><a class="remove_invkp_column"><?= __("Remove", 'invkptext') ?></a><?php endif; ?>
    208244                        </div>
    209245                        <?php endfor; ?>
     
    212248                        <input type="text" name="invkp_columns[]" value="" />
    213249                        <select name="invkp_column_types[]">
    214                             <option value="text">Text</option>
    215                             <option value="numeric">Numeric</option>
    216                             <option value="price">Price</option>
     250                            <option value="text"><?= __("Text", 'invkptext') ?></option>
     251                            <option value="numeric"><?= __("Numeric", 'invkptext') ?></option>
     252                            <option value="price"><?= __("Price", 'invkptext') ?></option>
    217253                        </select>
    218254                        <input type="text" name="invkp_column_widths[]" value="" size="3" placeholder="0%" />%
     
    221257                        </div>
    222258                        <br />
    223                         <a class="add_invkp_column">Add Column</a>
    224                     </td>
    225                     <td>Leave width blank to generate even columns</td>
    226                     </tr>
    227 
    228                     <tr valign="top">
    229                     <th scope="row">Row Calculation</th>
     259                        <a class="add_invkp_column"><?= __("Add Column", 'invkptext') ?></a>
     260                    </td>
     261                    <td><?= __("Leave width blank to generate even columns", 'invkptext') ?></td>
     262                    </tr>
     263
     264                    <tr valign="top">
     265                    <th scope="row"><?= __("Row Calculation", 'invkptext') ?></th>
    230266                    <td>
    231267                        <div class="invkp_row_calculation">
     
    245281                            ?>
    246282                            <select name="invkp_calculate_rows[]" class="row">
    247                                 <option value="">-- SELECT --</option>
     283                                <option value="">-- <?= __("SELECT", 'invkptext') ?> --</option>
    248284                                <?php foreach ($cols as $col) : ?>
    249285                                <option value="<?= $col ?>"<?php if ($calc_cols[$c] == $col) echo ' selected'; ?>><?= $col ?></option>
     
    253289                            <?php if (isset($calc_ops[$c]) && $calc_ops[$c] <> '') : ?>
    254290                            <select name='invkp_calculate_operators[]'>
    255                                 <option value=''>-- SELECT--</option>
     291                                <option value=''>-- <?= __("SELECT", 'invkptext') ?> --</option>
    256292                                <option value='*'<?php if ($calc_ops[$c] == '*') echo ' selected'; ?>>*</option>
    257293                                <option value='+'<?php if ($calc_ops[$c] == '+') echo ' selected'; ?>>+</option>
     
    264300                            <?php endif; ?>
    265301                            <select name="invkp_calculate_rows[]" class="row">
    266                                 <option value="">-- SELECT --</option>
     302                                <option value="">-- <?= __("SELECT", 'invkptext') ?> --</option>
    267303                                <?php foreach ($cols as $col) : ?>
    268304                                <option value="<?= $col ?>"><?= $col ?></option>
     
    272308                        </div>
    273309                    </td>
    274                     <td>Options available after "Define Columns" saved.</td>
    275                     </tr>
    276 
    277                     <tr valign="top">
    278                     <th scope="row">Subtotals Calculation Column</th>
     310                    <td><?= __('Options available after "Define Columns" saved.', 'invkptext') ?></td>
     311                    </tr>
     312
     313                    <tr valign="top">
     314                    <th scope="row"><?= __("Subtotals Calculation Column", 'invkptext') ?></th>
    279315                    <td>
    280316                        <?php
     
    288324                        ?>
    289325                        <select name="invkp_calculate_subtotal">
    290                             <option value="">-- SELECT --</option>
     326                            <option value="">-- <?= __("SELECT", 'invkptext') ?> --</option>
    291327                            <?php foreach ($cols as $col) : ?>
    292328                            <option value="<?= $col ?>"<?php if ($subtotal_col == $col) echo ' selected'; ?>><?= $col ?></option>
     
    294330                        </select>
    295331                    </td>
    296                     <td>Options available after "Define Columns" saved.</td>
     332                    <td><?= __('Options available after "Define Columns" saved.', 'invkptext') ?></td>
    297333                    </tr>
    298334                </table>
    299                 <?php submit_button('Save Settings', 'primary', 'submit', false, array('id'=>'invkp_invoice_settings_bottom_submit')); ?>
     335                <?php submit_button(__('Save Settings', 'invkptext'), 'primary', 'submit', false, array('id'=>'invkp_invoice_settings_bottom_submit')); ?>
    300336        </div>
    301337       
    302338        <?php /****** DEFAULT DETAILS ******/ ?>
    303339        <div id="invkp_default_details" class="invkp_section">
    304                 <?php submit_button('Save Options', 'primary', 'submit', false, array('id'=>'invkp_default_details_top_submit')); ?>
     340                <?php submit_button(__('Save Options', 'invkptext'), 'primary', 'submit', false, array('id'=>'invkp_default_details_top_submit')); ?>
    305341                <table class="form-table">
    306342                    <tr valign="top">
    307                     <th scope="row">Your Company Name</th>
     343                    <th scope="row"><?= __("Your Company Name", 'invkptext') ?></th>
    308344                    <td>
    309345                        <?php $val = get_option('invkp_company_name'); ?>
     
    314350
    315351                    <tr valign="top">
    316                     <th scope="row">Your Address</th>
     352                    <th scope="row"><?= __("Your Address", 'invkptext') ?></th>
    317353                    <td>
    318354                        <?php $val = get_option('invkp_address'); ?>
     
    323359
    324360                    <tr valign="top">
    325                     <th scope="row">Your Suburb/Town</th>
     361                    <th scope="row"><?= __("Your Suburb/Town", 'invkptext') ?></th>
    326362                    <td>
    327363                        <?php $val = get_option('invkp_suburb'); ?>
     
    332368
    333369                    <tr valign="top">
    334                     <th scope="row">Your State</th>
     370                    <th scope="row"><?= __("Your State", 'invkptext') ?></th>
    335371                    <td>
    336372                        <?php $val = get_option('invkp_state'); ?>
     
    341377
    342378                    <tr valign="top">
    343                     <th scope="row">Your Postcode/Zip</th>
     379                    <th scope="row"><?= __("Your Postcode/Zip", 'invkptext') ?></th>
    344380                    <td>
    345381                        <?php $val = get_option('invkp_postcode'); ?>
     
    350386
    351387                    <tr valign="top">
    352                     <th scope="row">Your Phone</th>
     388                    <th scope="row"><?= __("Your Phone", 'invkptext') ?></th>
    353389                    <td>
    354390                        <?php $val = get_option('invkp_phone'); ?>
     
    359395
    360396                    <tr valign="top">
    361                     <th scope="row">Your Email</th>
     397                    <th scope="row"><?= __("Your Email", 'invkptext') ?></th>
    362398                    <td>
    363399                        <?php $val = get_option('invkp_email'); ?>
     
    368404
    369405                    <tr valign="top">
    370                     <th scope="row">Additional Detail</th>
     406                    <th scope="row"><?= __("Additional Detail", 'invkptext') ?></th>
    371407                    <td>
    372408                        <?php $val = get_option('invkp_add_detail'); ?>
    373409                        <input type="text" name="invkp_add_detail" value="<?= $val ?>" />
    374410                    </td>
    375                     <td>eg Business Details (ie ABN)</td>
     411                    <td><?= __("eg Business Details (ie ABN)", 'invkptext') ?></td>
    376412                    </tr>
    377413                   
    378414                    <tr valign="top">
    379                     <th scope="row">Open Content Block 1</th>
     415                    <th scope="row"><?= __("Open Content Block 1", 'invkptext') ?></th>
    380416                    <td>
    381417                        <?php $val = get_option('invkp_open_content_1'); ?>
     
    386422
    387423                    <tr valign="top">
    388                     <th scope="row">Open Content Block 2</th>
     424                    <th scope="row"><?= __("Open Content Block 2", 'invkptext') ?></th>
    389425                    <td>
    390426                        <?php $val = get_option('invkp_open_content_2'); ?>
     
    394430                    </tr>
    395431                </table>
    396                 <?php submit_button('Save Options', 'primary', 'submit', false, array('id'=>'invkp_default_details_bottom_submit')); ?>
     432                <?php submit_button(__('Save Options', 'invkptext'), 'primary', 'submit', false, array('id'=>'invkp_default_details_bottom_submit')); ?>
    397433        </div>
    398434       
    399435        <?php /****** EMAIL SETTINGS ******/ ?>
    400436        <div id="invkp_email_settings" class="invkp_section">
    401                 <?php submit_button('Save Settings', 'primary', 'submit', false, array('id'=>'invkp_email_settings_top_submit')); ?>
     437                <?php submit_button(__('Save Settings', 'invkptext'), 'primary', 'submit', false, array('id'=>'invkp_email_settings_top_submit')); ?>
    402438                <table class="form-table">
    403439                    <tr valign="top">
    404                     <th scope="row">From Name</th>
     440                    <th scope="row"><?= __("From Name", 'invkptext') ?></th>
    405441                    <td>
    406442                        <?php $val = get_option('invkp_from'); ?>
     
    411447
    412448                    <tr valign="top">
    413                     <th scope="row">From Email</th>
     449                    <th scope="row"><?= __("From Email", 'invkptext') ?></th>
    414450                    <td>
    415451                        <?php $val = get_option('invkp_from_email'); ?>
     
    420456
    421457                    <tr valign="top">
    422                     <th scope="row">BCC the above email?</th>
     458                    <th scope="row"><?= __("BCC the above email?", 'invkptext') ?></th>
    423459                    <td>
    424460                        <?php $val = get_option('invkp_bcc'); ?>
     
    426462                        <input type="checkbox" name="invkp_bcc" value="1"<?= ($val == 1) ? " checked" : '' ?> />
    427463                    </td>
    428                     <td>Have all email correspondence sent to the above email</td>
    429                     </tr>
    430 
    431                     <tr valign="top">
    432                     <th scope="row">Subject</th>
     464                    <td><?= __("Have all email correspondence sent to the above email", 'invkptext') ?></td>
     465                    </tr>
     466
     467                    <tr valign="top">
     468                    <th scope="row"><?= __("Subject", 'invkptext') ?></th>
    433469                    <td>
    434470                        <?php $val = get_option('invkp_email_subject'); ?>
     
    439475
    440476                    <tr valign="top">
    441                     <th scope="row">Message</th>
     477                    <th scope="row"><?= __("Message", 'invkptext') ?></th>
    442478                    <td>
    443479                        <?php $val = get_option('invkp_email_message'); ?>
     
    448484
    449485                    <tr valign="top">
    450                     <th scope="row">Paid Subject</th>
     486                    <th scope="row"><?= __("Paid Subject", 'invkptext') ?></th>
    451487                    <td>
    452488                        <?php $val = get_option('invkp_paid_email_subject'); ?>
     
    457493
    458494                    <tr valign="top">
    459                     <th scope="row">Paid Message</th>
     495                    <th scope="row"><?= __("Paid Message", 'invkptext') ?></th>
    460496                    <td>
    461497                        <?php $val = get_option('invkp_paid_email_message'); ?>
     
    465501                    </tr>
    466502                </table>
    467                 <?php submit_button('Save Settings', 'primary', 'submit', false, array('id'=>'invkp_email_settings_bottom_submit')); ?>
     503                <?php submit_button(__('Save Settings', 'invkptext'), 'primary', 'submit', false, array('id'=>'invkp_email_settings_bottom_submit')); ?>
    468504        </div>
    469505           
     
    472508        <?php /****** THEMES ******/ ?>
    473509        <div id="invkp_themes" class="invkp_section">
    474             <h2>Themes</h2>
     510            <h2><?= __("Themes", 'invkptext') ?></h2>
    475511           
    476             <p>Personalise your invoices by using an Invoice King Pro theme. The current selection is below. If you would like one that is customised just for you,
    477                 contact <a href="mailto:[email protected]">[email protected]</a>.</p>
     512            <p><?= __("Personalise your invoices by using an Invoice King Pro theme. The current selection is below. If you would like one that is customised just for you,
     513                contact", 'invkptext') ?> <a href="mailto:[email protected]">[email protected]</a>.</p>
    478514           
    479515            <div class="kpp_item">
    480516                <a href="<?= plugins_url('../images/clean-invoice-theme.png', dirname(__FILE__)) ?>"><img alt="Clean Invoice" src="<?= plugins_url('../images/clean-invoice-theme.png', dirname(__FILE__)) ?>" /></a>
    481517                <span class="title">Clean</span>
    482                 <span class="description">Nice sharp design using<br />a custom font.</span>
    483                 <span class="links"><a href="http://kingpro.me/plugins/invoice-king-pro/themes/" target='_blank' title="Get the 'Clean' theme">Get It</a></span>
     518                <span class="description"><?= __("Nice sharp design using<br />a custom font", 'invkptext') ?>.</span>
     519                <span class="links"><a href="http://kingpro.me/plugins/invoice-king-pro/themes/" target='_blank' title="Get the 'Clean' theme"><?= __("Get It", 'invkptext') ?></a></span>
    484520            </div>
    485521
    486522            <div class="kpp_item">
    487523                <a href="<?= plugins_url('../images/default-with-image-invoice-theme.png', dirname(__FILE__)) ?>"><img alt="Default with Logo" src="<?= plugins_url('../images/default-with-image-invoice-theme.png', dirname(__FILE__)) ?>" /></a>
    488                 <span class="title">Default with Logo</span>
    489                 <span class="description">The default theme with added feature to upload a logo</span>
    490                 <span class="links"><a href="http://kingpro.me/plugins/invoice-king-pro/themes/" target='_blank' title="Get the 'Default with Logo' theme">Get It</a></span>
     524                <span class="title"><?= __("Default with Logo", 'invkptext') ?></span>
     525                <span class="description"><?= __("The default theme with added feature to upload a logo", 'invkptext') ?></span>
     526                <span class="links"><a href="http://kingpro.me/plugins/invoice-king-pro/themes/" target='_blank' title="Get the 'Default with Logo' theme"><?= __("Get It", 'invkptext') ?></a></span>
     527            </div>
     528           
     529            <div class="kpp_item">
     530                <a href="<?= plugins_url('../images/clean-invoice-theme.png', dirname(__FILE__)) ?>"><img alt="Clean with Logo" src="<?= plugins_url('../images/clean-invoice-theme.png', dirname(__FILE__)) ?>" /></a>
     531                <span class="title"><?= __("Clean with Logo", 'invkptext') ?></span>
     532                <span class="description"><?= __("Nice sharp design using<br />a custom font with added feature to upload a logo", 'invkptext') ?>.</span>
     533                <span class="links"><a href="http://kingpro.me/plugins/invoice-king-pro/themes/" target='_blank' title="Get the 'Clean' theme"><?= __("Get It", 'invkptext') ?></a></span>
    491534            </div>
    492535        </div>
     
    494537        <?php /****** ADDONS ******/ ?>
    495538        <div id="invkp_addons" class="invkp_section">
    496             <h2>Add-ons</h2>
    497             <p>Expand the functionality of Invoice King Pro to your necessity by installing Addons. Is there additional functionality your looking for that an addon
    498             doesn't cover? Contact <a href="mailto:[email protected]">[email protected]</a> and fill us in about what you after.</p>
     539            <h2><?= __("Add-ons", 'invkptext') ?></h2>
     540            <p><?= __("Expand the functionality of Invoice King Pro to your necessity by installing Addons. Is there additional functionality your looking for that an addon
     541            doesn't cover? Contact", 'invkptext') ?> <a href="mailto:[email protected]">[email protected]</a> <?= __("and fill us in about what you after.", 'invkptext') ?></p>
    499542           
    500543            <div class="kpp_item">
    501                 <img alt="Recurring Invoice" src="<?= plugins_url('../images/addon-recurring.jpg', dirname(__FILE__)) ?>" />
    502                 <span class="title">Recurring Invoices</span>
    503                 <span class="description">Turn new and existing invoices into automatic recurring invoices via a cron</span>
    504                 <span class="links"><a href="http://kingpro.me/plugins/invoice-king-pro/add-ons/" target='_blank' title="Get the 'Recurring Invoices' Add-on">Get It</a></span>
     544                <img alt="<?= __("Recurring Invoice", 'invkptext') ?>" src="<?= plugins_url('../images/addon-recurring.jpg', dirname(__FILE__)) ?>" />
     545                <span class="title"><?= __("Recurring Invoices", 'invkptext') ?></span>
     546                <span class="description"><?= __("Turn new and existing invoices into automatic recurring invoices via a cron", 'invkptext') ?></span>
     547                <span class="links"><a href="http://kingpro.me/plugins/invoice-king-pro/add-ons/" target='_blank' title="Get the 'Recurring Invoices' Add-on"><?= __("Get It", 'invkptext') ?></a></span>
    505548            </div>
    506549            <div class="kpp_item">
    507                 <img alt="Attachments" src="<?= plugins_url('../images/addon-attachments.jpg', dirname(__FILE__)) ?>" />
    508                 <span class="title">Attachments</span>
    509                 <span class="description">Attach additional files to all and individual invoices when sent to client</span>
    510                 <span class="links"><a href="http://kingpro.me/plugins/invoice-king-pro/add-ons/" target='_blank' title="Get the 'Attachments' Add-on">Get It</a></span>
     550                <img alt="<?= __("Attachments", 'invkptext') ?>" src="<?= plugins_url('../images/addon-attachments.jpg', dirname(__FILE__)) ?>" />
     551                <span class="title"><?= __("Attachments", 'invkptext') ?></span>
     552                <span class="description"><?= __("Attach additional files to all and individual invoices when sent to client", 'invkptext') ?></span>
     553                <span class="links"><a href="http://kingpro.me/plugins/invoice-king-pro/add-ons/" target='_blank' title="Get the 'Attachments' Add-on"><?= __("Get It", 'invkptext') ?></a></span>
    511554            </div>
    512555        </div>
  • invoice-king-pro/trunk/invoicekingpro.php

    r811307 r876146  
    44    Plugin URI: http://kingpro.me/plugins/invoice-king-pro/
    55    Description: Invoice King Pro allows you to create, send and manage invoices for whatever purpose. If AdKingPro is installed as well, automatically generate invoices for revenue outputs.
    6     Version: 1.1.2
     6    Version: 1.1.3
    77    Author: Ash Durham
    88    Author URI: http://durham.net.au/
     
    2828
    2929    global $invkp_db_version;
    30     $invkp_db_version = "1.1.2";
     30    $invkp_db_version = "1.1.3";
    3131    $invkp_safe_theme = '1.2';
    3232   
     
    4646   
    4747    // END INSTALL
     48   
     49    function invkp_languages_init() {
     50        load_plugin_textdomain('invkptext', false, basename( dirname( __FILE__ ) ) . '/languages' );
     51    }
     52    add_action('plugins_loaded', 'invkp_languages_init');
    4853   
    4954    if (get_option("invpk_db_version") != $invkp_db_version) {
  • invoice-king-pro/trunk/readme.txt

    r811307 r876146  
    44Tags: invoice, invoicing, pdf, clients, revenue, money, themes, theme, dollars, paid, payment, receipt, clients, email
    55Requires at least: 3.0.1
    6 Tested up to: 3.7.1
    7 Stable tag: 1.1.2
     6Tested up to: 3.8.1
     7Stable tag: 1.1.3
    88License: GPLv2
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    115115== Changelog ==
    116116
     117= 1.1.3 =
     118* Made totals labels editable within admin
     119* Converted text to enable translations
     120
    117121= 1.1.2 =
    118122* Update to KPP section with release of new plugin
     
    173177== Upgrade Notice ==
    174178
     179= 1.1.3 =
     180* Made totals labels editable within admin
     181* Converted text to enable translations
     182
    175183= 1.1.2 =
    176184* Update to KPP section with release of new plugin
  • invoice-king-pro/trunk/themes/default/invoice_html.php

    r798365 r876146  
    8181                <td style="width: <?= $column_widths[$col] ?>%;"><input type="text" name="invkp_subtotal" id="invkp_subtotal" value="<?= $custom_fields['invkp_subtotal'][0] ?>" placeholder="Subtotal - To be calculated" readonly /></td>
    8282                <?php elseif ($c === count($columns)-1) : ?>
    83                 <th style="text-align: right;">Subtotal</th>
     83                <th style="text-align: right;"><?= $custom_fields['invkp_subtotal_label'][0] ?></th>
    8484                <?php else : ?>
    8585                <td></td>
     
    9292                <td style="width: <?= $column_widths[$col] ?>%;"><input type="text" name="invkp_discount" id="invkp_discount" value="<?= $custom_fields['invkp_discount'][0] ?>" placeholder="Discount - To be calculated" readonly /></td>
    9393                <?php elseif ($c === count($columns)-1) : ?>
    94                 <th style="text-align: right;">Discount</th>
     94                <th style="text-align: right;"><?= $custom_fields['invkp_discount_label'][0] ?></th>
    9595                <?php else : ?>
    9696                <td></td>
     
    114114                <td style="width: <?= $column_widths[$col] ?>%;"><input type="text" name="invkp_total" id="invkp_total" value="<?= $custom_fields['invkp_total'][0] ?>" placeholder="Total - To be calculated" readonly /></td>
    115115                <?php elseif ($c === count($columns)-1) : ?>
    116                 <th style="text-align: right;">Total</th>
     116                <th style="text-align: right;"><?= $custom_fields['invkp_total_label'][0] ?></th>
    117117                <?php else : ?>
    118118                <td></td>
  • invoice-king-pro/trunk/themes/default/version

    r811307 r876146  
    1 1.2
     11.4
Note: See TracChangeset for help on using the changeset viewer.