plugin = $plugin; add_filter( 'flexible_shipping_integration_options', array( $this, 'flexible_shipping_integration_options' ), 10 ); add_filter( 'flexible_shipping_method_settings', array( $this, 'flexible_shipping_method_settings' ), 10, 2 ); add_action( 'flexible_shipping_method_script', array( $this, 'flexible_shipping_method_script' ) ); add_filter( 'flexible_shipping_process_admin_options', array( $this, 'flexible_shipping_process_admin_options' ), 10, 1 ); add_filter( 'flexible_shipping_method_integration_col', array( $this, 'flexible_shipping_method_integration_col' ), 10, 2 ); add_filter( 'flexible_shipping_method_rate_id', array( $this, 'flexible_shipping_method_rate_id' ), 10, 2 ); add_filter( 'flexible_shipping_add_method', array( $this, 'flexible_shipping_add_method' ), 10, 3 ); add_filter( 'flexible_shipping_shipping_data', array( $this, 'flexible_shipping_shipping_data' ), 10, 2 ); add_filter( 'flexible_shipping_bulk_send', array( $this, 'flexible_shipping_bulk_send' ), 10, 2 ); add_filter( 'flexible_shipping_bulk_label', array( $this, 'flexible_shipping_bulk_label' ), 10, 2 ); add_action( 'flexible_shipping_shipment_confirmed', array( $this, 'flexible_shipping_shipment_confirmed' ), 10, 2 ); } /** * . * * @param WPDesk_Flexible_Shipping_Shipment $shipment . */ public function flexible_shipping_shipment_confirmed( WPDesk_Flexible_Shipping_Shipment $shipment ) { if ( $shipment->get_meta( '_integration', '' ) != 'dhl' ) { return; } $all_shipping_methods = WC()->shipping()->get_shipping_methods(); $shipping_method = $all_shipping_methods['dhl']; if ( $shipping_method->get_option( 'complete_order', 'no' ) == 'yes' ) { $order = $shipment->get_order(); $order->update_status( 'completed', __( 'Status zmieniony automatycznie po utworzeniu przesyłki - wtyczka DHL.', 'woocommerce-dhl' ) ); } } /** * . * * @param array $options . * * @return array */ function flexible_shipping_integration_options( $options ) { $options['dhl'] = __( 'DHL', 'woocommerce-dhl' ); return $options; } /** * . * * @param array $flexible_shipping_settings . * @param array $shipping_method . * * @return array */ public function flexible_shipping_method_settings( $flexible_shipping_settings, $shipping_method ) { $shipping_methods = WC()->shipping->get_shipping_methods(); if ( 1 == 1 || 'yes' === $shipping_methods['dhl']->enabled ) { $insurance_custom_attributes = array(); if ( isset( $shipping_method['dhl_insurance'] ) && '1' === $shipping_method['dhl_insurance'] ) { $insurance_custom_attributes = array( 'checked' => 'checked' ); } $cod_custom_attributes = array(); if ( isset( $shipping_method['dhl_cod'] ) && '1' === $shipping_method['dhl_cod'] ) { $cod_custom_attributes = array( 'checked' => 'checked' ); } $dhl_package_nonstandard_custom_attributes = array(); if ( isset( $shipping_method['dhl_package_nonstandard'] ) && 1 === (int) $shipping_method['dhl_package_nonstandard'] ) { $dhl_package_nonstandard_custom_attributes = array( 'checked' => 'checked' ); } $settings = array( 'dhl_product' => array( 'title' => __( 'Usługa DHL', 'woocommerce-dhl' ), 'type' => 'select', 'default' => isset( $shipping_method['dhl_product'] ) ? $shipping_method['dhl_product'] : '', 'options' => WPDesk_WooCommerce_DHL::get_products(), ), 'dhl_package_type' => array( 'title' => __( 'Rodzaj przesyłki', 'woocommerce-dhl' ), 'type' => 'select', 'default' => isset( $shipping_method['dhl_package_type'] ) ? $shipping_method['dhl_package_type'] : '', 'options' => WPDesk_WooCommerce_DHL::get_package_types(), ), 'dhl_package_nonstandard' => array( 'title' => __( 'Przesyłka niestandardowa', 'woocommerce-dhl' ), 'label' => __( 'Przesyłka niestandardowa (NST)', 'woocommerce-dhl' ), 'type' => 'checkbox', 'desc_tip' => true, 'description' => __( 'Zaznacz tą opcję jeżeli wysyłane przez Ciebie produkty lub ich opakowania kwalifikują się na przesyłkę niestandardową.', 'woocommerce-dhl' ), 'custom_attributes' => $dhl_package_nonstandard_custom_attributes, ), 'dhl_insurance' => array( 'title' => __( 'Ubezpieczenie', 'woocommerce-dhl' ), 'type' => 'checkbox', 'custom_attributes' => $insurance_custom_attributes, ), 'dhl_cod' => array( 'title' => __( 'Pobranie', 'woocommerce-dhl' ), 'type' => 'checkbox', 'custom_attributes' => $cod_custom_attributes, ), 'dhl_services' => array( 'title' => __( 'Usługi dodatkowe', 'woocommerce-dhl' ), 'type' => 'multiselect', 'class' => 'wc-enhanced-select', 'default' => isset( $shipping_method['dhl_services'] ) ? $shipping_method['dhl_services'] : array(), 'options' => WPDesk_WooCommerce_DHL::get_services(), 'desc_tip' => __( 'Wybierz dostępne opcje dodatkowe dla wskazanej usługi DHL.', 'woocommerce-dhl' ), 'description' => sprintf( __( 'Niektóre usługi dodatkowe mogą być dostępne jedynie dla wybranych kodów pocztowych. %sDowiedz się więcej o usługach dodatkowych DHL →%s', 'woocommerce-dhl' ), '', '' ), ), ); return array_merge( $flexible_shipping_settings, $settings ); } return $flexible_shipping_settings; } /** * Add JS scripts. */ public function flexible_shipping_method_script() { ?> shipping->get_shipping_methods(); $shipping_method['dhl_product'] = $_POST['woocommerce_flexible_shipping_dhl_product']; $shipping_method['dhl_package_type'] = $_POST['woocommerce_flexible_shipping_dhl_package_type']; $shipping_method['dhl_insurance'] = 0; if ( isset( $_POST['woocommerce_flexible_shipping_dhl_insurance'] ) ) { $shipping_method['dhl_insurance'] = $_POST['woocommerce_flexible_shipping_dhl_insurance']; } $shipping_method['dhl_cod'] = 0; if ( isset( $_POST['woocommerce_flexible_shipping_dhl_cod'] ) ) { $shipping_method['dhl_cod'] = $_POST['woocommerce_flexible_shipping_dhl_cod']; } $shipping_method['dhl_package_nonstandard'] = (int) isset( $_POST['woocommerce_flexible_shipping_dhl_package_nonstandard'] ); $shipping_method['dhl_services'] = array(); if ( isset( $_POST['woocommerce_flexible_shipping_dhl_services'] ) ) { $shipping_method['dhl_services'] = array_map( 'sanitize_text_field', wp_unslash( $_POST['woocommerce_flexible_shipping_dhl_services'] ) ); } return $shipping_method; } /** * . * * @param string $col . * @param array $shipping_method . * * @return string */ public function flexible_shipping_method_integration_col( $col, $shipping_method ) { $shipping_methods = WC()->shipping->get_shipping_methods(); if ( 'yes' === $shipping_methods['dhl']->enabled ) { if ( isset( $shipping_method['method_integration'] ) && 'dhl' === $shipping_method['method_integration'] ) { ob_start(); $tip = __( 'Brak', 'woocommerce-dhl' ); $products = WPDesk_WooCommerce_DHL::get_products(); if ( isset( $products[ $shipping_method['dhl_product'] ] ) ) { $tip = $products[ $shipping_method['dhl_product'] ]; } $package_types = WPDesk_WooCommerce_DHL::get_package_types(); if ( isset( $package_types[ $shipping_method['dhl_package_type'] ] ) ) { $tip .= ', ' . $package_types[ $shipping_method['dhl_package_type'] ]; } ?>