/* Decoded by unphp.net */ load->helper(PRODUCTS_MODULE.'/products'); // Load module Library file $CI->load->library(PRODUCTS_MODULE.'/'.'products_lib'); // Inject css file for products module hooks()->add_action('app_admin_head', 'products_add_head_components'); function products_add_head_components() { // Check module is enable or not (refer install.php) if ('1' == get_option('products_enabled')) { $CI = &get_instance(); echo ''; echo ''; } } // Inject Javascript file for products module hooks()->add_action('app_admin_footer', 'products_load_js'); function products_load_js() { if ('1' == get_option('products_enabled')) { $CI = &get_instance(); echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } } // Inject Style file for products frontendview hooks()->add_action('app_customers_footer', 'customers_load_css'); function customers_load_css() { if ('1' == get_option('products_enabled')) { $CI = &get_instance(); $viewuri = $_SERVER['REQUEST_URI']; if (false !== strpos($viewuri, '/products/client')) { echo ''; } } } //inject permissions Feature and Capabilities for products module hooks()->add_filter('staff_permissions', 'products_module_permissions_for_staff'); function products_module_permissions_for_staff($permissions) { $viewGlobalName = _l('permission_view').'('._l('permission_global').')'; $allPermissionsArray = [ 'view' => $viewGlobalName, 'create' => _l('permission_create'), ]; $permissions['products'] = [ 'name' => _l('products'), 'capabilities' => $allPermissionsArray, ]; return $permissions; } // Inject sidebar menu and links for products module hooks()->add_action('admin_init', 'products_module_init_menu_items'); function products_module_init_menu_items() { $CI = &get_instance(); if (has_permission('products', '', 'view')) { $CI->app_menu->add_sidebar_menu_item('products', [ 'slug' => 'Products', 'name' => _l('products'), 'icon' => 'fa fa-cart-plus', 'href' => '#', 'position' => 30, ]); } if (has_permission('products', '', 'view')) { $CI->app_menu->add_sidebar_children_item('products', [ 'slug' => 'Products', 'name' => _l('products'), 'href' => admin_url('products'), 'position' => 1, ]); } if (has_permission('products', '', 'view')) { $CI->app_menu->add_sidebar_children_item('products', [ 'slug' => 'products_categories', 'name' => _l('products_categories'), 'href' => admin_url('products/products_categories'), 'position' => 5, ]); } if (has_permission('products', '', 'view')) { $CI->app_menu->add_sidebar_children_item('products', [ 'slug' => 'order_history', 'name' => _l('order_history'), 'href' => admin_url('products/order_history'), 'position' => 5, ]); } if (has_permission('products', '', 'view')) { $CI->app_menu->add_sidebar_children_item('products', [ 'slug' => 'add_new_order', 'name' => _l('add_new_order'), 'href' => admin_url('products/staff_order'), 'position' => 8, ]); } if (has_permission('products', '', 'view')) { $CI->app_menu->add_sidebar_children_item('products', [ 'slug' => 'variations', 'name' => _l('variations'), 'href' => admin_url('products/variations'), 'position' => 9, ]); } if (0 == get_option('coupons_disabled')) { if (has_permission('products', '', 'view')) { $CI->app_menu->add_sidebar_children_item('products', [ 'slug' => 'coupons', 'name' => _l('coupons'), 'href' => admin_url('products/coupons'), 'position' => 10, ]); } } if (has_permission('products', '', 'view')) { $CI->app_menu->add_sidebar_children_item('reports', [ 'slug' => 'order_report', 'name' => _l('order_report'), 'href' => admin_url('products/order_report'), 'position' => 7, ]); } if (has_permission('products', '', 'view')) { $CI->app_menu->add_sidebar_children_item('reports', [ 'slug' => 'quantities_report', 'name' => _l('quantities_report'), 'href' => admin_url('products/quantities_report'), 'position' => 8, ]); } } // Inject email template for products module hooks()->add_action('after_email_templates', 'add_email_template_products'); function add_email_template_products() { $CI = &get_instance(); $data['hasPermissionEdit'] = has_permission('email_templates', '', 'edit'); $data['orders'] = $CI->emails_model->get([ 'type' => 'order', 'language' => 'english', ]); $CI->load->view('products/mail_lists/email_templates_list', $data, false); } // Inject merge fields that will be used email templates for products module register_merge_fields('products/order_merge_fields'); hooks()->add_filter('available_merge_fields', 'products_fields_merge'); function products_fields_merge($fields) { foreach ($fields as $key => $value) { if (isset($value['other'])) { foreach ($value['other'] as $s_key => $s_value) { if (!empty($value['other'][$s_key]['available'])) { array_push($value['other'][$s_key]['available'], 'order'); } } } if (isset($value['client'])) { foreach ($value['client'] as $s_key => $s_value) { if (!empty($value['client'][$s_key]['available'])) { array_push($value['client'][$s_key]['available'], 'order'); } } } if (isset($value['invoice'])) { foreach ($value['invoice'] as $s_key => $s_value) { if (!empty($value['invoice'][$s_key]['available'])) { array_push($value['invoice'][$s_key]['available'], 'order'); } } } $final_fields[$key] = $value; } return $final_fields; } // Add Menu In Customer Side hooks()->add_action('customers_navigation_start', 'add_product_menu'); function add_product_menu() { // Show products only at logged in users for clients area if (1 == get_option('nlu_product_menu_disabled') && 0 == get_option('product_menu_disabled')) { if (is_client_logged_in()) { echo '
  • '._l('products').'
  • '; } } // Allow products view for everyone in clients area if (0 == get_option('nlu_product_menu_disabled') && 0 == get_option('product_menu_disabled')) { echo '
  • '._l('products').'
  • '; } } // Add settings menu(tab menu) In Admin Side $CI->app_tabs->add_settings_tab('products', [ 'name' => 'Products', 'view' => 'products/settings', 'position' => 60, ]); hooks()->add_action('settings_tab_footer', 'add_product_setting_footer'); function add_product_setting_footer($tab) { if ($tab['slug'] == "products") { echo ''; } } hooks()->add_filter('before_settings_updated', 'update_setting_data'); function update_setting_data($data) { if (!empty($data['settings']['product_tax_for_shipping_cost'])) { $data['settings']['product_tax_for_shipping_cost'] = serialize($data['settings']['product_tax_for_shipping_cost']); } return $data; } // Inject upload folder location for products module hooks()->add_filter('get_upload_path_by_type', 'product_upload_folder', 10, 2); function product_upload_folder($path, $type) { if ('products' == $type) { return PRODUCT_MODULE_UPLOAD_FOLDER; } return $path; } // Change Order Status On change Invoice status hooks()->add_action('invoice_status_changed', 'change_order_status'); function change_order_status($data) { if (!class_exists('Invoices_model', false)) { get_instance()->load->model('invoices_model'); } $CI = &get_instance(); $CI->load->model('products/order_model'); if (Invoices_model::STATUS_PAID == $data['status']) { $CI->order_model->update_quantity_on_invoice($data['invoice_id']); } $CI->order_model->update_status($data['invoice_id'], $data['status']); } hooks()->add_action('invoice_marked_as_cancelled', 'change_cancel_order'); function change_cancel_order($invoice_id) { if (!class_exists('Invoices_model', false)) { get_instance()->load->model('invoices_model'); } $CI = &get_instance(); $CI->load->model('products/order_model'); $CI->order_model->update_status($invoice_id, Invoices_model::STATUS_CANCELLED); } hooks()->add_action('app_init', PRODUCTS_MODULE.'_actLib'); function products_actLib() { $CI = &get_instance(); $CI->load->library(PRODUCTS_MODULE.'/Products_aeiou'); $envato_res = $CI->products_aeiou->validatePurchase(PRODUCTS_MODULE); if (!$envato_res) { set_alert('danger', 'One of your modules failed its verification and got deactivated. Please reactivate or contact support.'); } } hooks()->add_action('pre_activate_module', PRODUCTS_MODULE.'_sidecheck'); function products_sidecheck($module_name) { if (PRODUCTS_MODULE == $module_name['system_name']) { modules\products\core\Apiinit::activate($module_name); } } hooks()->add_action('pre_deactivate_module', PRODUCTS_MODULE.'_deregister'); function products_deregister($module_name) { if (PRODUCTS_MODULE == $module_name['system_name']) { delete_option(PRODUCTS_MODULE.'_verification_id'); delete_option(PRODUCTS_MODULE.'_last_verification'); delete_option(PRODUCTS_MODULE.'_product_token'); delete_option(PRODUCTS_MODULE.'_heartbeat'); } } ?>