<?php /** * Exporter. * * @package WPDesk\FS\TableRate\ImporterExporter */ namespace WPDesk\FS\TableRate\ImporterExporter; use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable; use WPDesk\FS\TableRate\ImporterExporter\Exporter\JSON; /** * Class Hooks */ class Exporter implements Hookable { /** * @return void|null */ public function hooks() { add_action( 'wp_ajax_flexible_shipping_export', array( $this, 'flexible_shipping_export' ) ); } /** * Preparing data to export. */ public function flexible_shipping_export() { check_ajax_referer( 'flexible_shipping', 'flexible_shipping_nonce' ); if ( ! current_user_can( 'manage_woocommerce' ) ) { wp_send_json_error(); } $instance_id = filter_input( INPUT_GET, 'instance_id' ); $methods = array_filter( wp_parse_id_list( filter_input( INPUT_GET, 'methods' ) ) ); $exporter = new JSON( sanitize_key( $instance_id ), $methods ); $export_data = $exporter->get_exported_data(); $exporter->download_file( $exporter->get_filename( $export_data ), $export_data ); } }