Wooocommerce plačilo dela celotne cene

Pozdravljeni,

kolegica izdeluje stvari ima trgovino na woocommercu, ker pa so določeni izdelki dražji in tudi časovno zahtevni bi jih rada imela v ponudbi ampak, da se prikaže cena npr 200€ ampak pri opciji pa da se naročilo izvede po plačilu avansa npr 50€. Kaka ideja kako to narediti? In vidno mora biti cena je 200€, plačilo avansa npr 50 € potrebno. Tisto, da traja par dni do dokončanja pa se mi zdi, da bi lahko bilo v opisu.
Lp

3 odgovori

Noben ne ve?

https://wordpress.org/plugins/woocommerce-payment-discounts/

1
  • dodati je potrebno nov payment gateway. (nov plugin)

<?php
/**
* Plugin Name: WooCommerce Offline Gateway
* Plugin URI: https://www.skyverge.com/?p=3343
* Description: Clones the "Cheque" gateway to create another manual / offline payment method; can be used for testing as well.
* Author: SkyVerge
* Author URI: http://www.skyverge.com/
* Version: 1.0.2
* Text Domain: wc-gateway-offline
* Domain Path: /i18n/languages/
*
* Copyright: (c) 2015-2016 SkyVerge, Inc. (info@skyverge.com) and WooCommerce
*
* License: GNU General Public License v3.0
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
*
* @package WC-Gateway-Offline
* @author SkyVerge
* @category Admin
* @copyright Copyright (c) 2015-2016, SkyVerge, Inc. and WooCommerce
* @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0
*
* This offline gateway forks the WooCommerce core "Cheque" payment gateway to create another offline payment method.
*/

defined( 'ABSPATH' ) or exit;
// Make sure WooCommerce is active
if ( ! inarray( 'woocommerce/woocommerce.php', applyfilters( 'activeplugins', getoption( 'activeplugins' ) ) ) ) {
return;
}
/**
* Add the gateway to WC Available Gateways
*
* @since 1.0.0
* @param array $gateways all available WC gateways
* @return array $gateways all WC gateways + offline gateway
*/
function wc
offlineaddtogateways( $gateways ) {
$gateways[] = 'WC
GatewayOffline';
return $gateways;
}
add
filter( 'woocommercepaymentgateways', 'wcofflineaddtogateways' );
/**
* Adds plugin page links
*
* @since 1.0.0
* @param array $links all plugin links
* @return array $links all plugin links + our custom links (i.e., "Settings")
/
function wcofflinegatewaypluginlinks( $links ) {
$pluginlinks = array(
'<a href="' . admin
url( 'admin.php?page=wc-settings&tab=checkout&section=offlinegateway' ) . '">' . _( 'Configure', 'wc-gateway-offline' ) . '</a>'
);
return arraymerge( $pluginlinks, $links );
}
addfilter( 'pluginactionlinks' . pluginbasename( _FILE__ ), 'wcofflinegatewaypluginlinks' );
/
*
* Offline Payment Gateway
*
* Provides an Offline Payment Gateway; mainly for testing purposes.
* We load it later to ensure WC is loaded first since we're extending it.
*
* @class WCGatewayOffline
* @extends WCPaymentGateway
* @version 1.0.0
* @package WooCommerce/Classes/Payment
* @author SkyVerge
/
addaction( 'pluginsloaded', 'wcofflinegatewayinit', 11 );
function wc
offlinegatewayinit() {
class WCGatewayOffline extends WCPaymentGateway {
/
*
* Constructor for the gateway.
*/
public function __construct() {

        $this->id                 = 'offline_gateway';
        $this->icon               = apply_filters('woocommerce_offline_icon', '');
        $this->has_fields         = false;
        $this->method_title       = __( 'Offline', 'wc-gateway-offline' );
        $this->method_description = __( 'Allows offline payments. Very handy if you use your cheque gateway for another payment method, and can help with testing. Orders are marked as "on-hold" when received.', 'wc-gateway-offline' );

        // Load the settings.
        $this->init_form_fields();
        $this->init_settings();

        // Define user set variables
        $this->title        = $this->get_option( 'title' );
        $this->description  = $this->get_option( 'description' );
        $this->instructions = $this->get_option( 'instructions', $this->description );

        // Actions
        add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, array( $this, 'process_admin_options' ) );
        add_action( 'woocommerce_thankyou_' . $this->id, array( $this, 'thankyou_page' ) );

        // Customer Emails
        add_action( 'woocommerce_email_before_order_table', array( $this, 'email_instructions' ), 10, 3 );
    }


    /**
     * Initialize Gateway Settings Form Fields
     */
    public function init_form_fields() {

        $this->form_fields = apply_filters( 'wc_offline_form_fields', array(

            'enabled' => array(
                'title'   => __( 'Enable/Disable', 'wc-gateway-offline' ),
                'type'    => 'checkbox',
                'label'   => __( 'Enable Offline Payment', 'wc-gateway-offline' ),
                'default' => 'yes'
            ),

            'title' => array(
                'title'       => __( 'Title', 'wc-gateway-offline' ),
                'type'        => 'text',
                'description' => __( 'This controls the title for the payment method the customer sees during checkout.', 'wc-gateway-offline' ),
                'default'     => __( 'Offline Payment', 'wc-gateway-offline' ),
                'desc_tip'    => true,
            ),

            'description' => array(
                'title'       => __( 'Description', 'wc-gateway-offline' ),
                'type'        => 'textarea',
                'description' => __( 'Payment method description that the customer will see on your checkout.', 'wc-gateway-offline' ),
                'default'     => __( 'Please remit payment to Store Name upon pickup or delivery.', 'wc-gateway-offline' ),
                'desc_tip'    => true,
            ),

            'instructions' => array(
                'title'       => __( 'Instructions', 'wc-gateway-offline' ),
                'type'        => 'textarea',
                'description' => __( 'Instructions that will be added to the thank you page and emails.', 'wc-gateway-offline' ),
                'default'     => '',
                'desc_tip'    => true,
            ),
        ) );
    }


    /**
     * Output for the order received page.
     */
    public function thankyou_page() {
        if ( $this->instructions ) {
            echo wpautop( wptexturize( $this->instructions ) );
        }
    }


    /**
     * Add content to the WC emails.
     *
     * @access public
     * @param WC_Order $order
     * @param bool $sent_to_admin
     * @param bool $plain_text
     */
    public function email_instructions( $order, $sent_to_admin, $plain_text = false ) {

        if ( $this->instructions && ! $sent_to_admin && $this->id === $order->payment_method && $order->has_status( 'on-hold' ) ) {
            echo wpautop( wptexturize( $this->instructions ) ) . PHP_EOL;
        }
    }


    /**
     * Process the payment and return the result
     *
     * @param int $order_id
     * @return array
     */
    public function process_payment( $order_id ) {

        $order = wc_get_order( $order_id );

        // Mark as on-hold (we're awaiting the payment)
        $order->update_status( 'on-hold', __( 'Awaiting offline payment', 'wc-gateway-offline' ) );

        // Reduce stock levels
        $order->reduce_order_stock();

        // Remove cart
        WC()->cart->empty_cart();

        // Return thankyou redirect
        return array(
            'result'    => 'success',
            'redirect'  => $this->get_return_url( $order )
        );
    }

} // end \WCGatewayOffline class
}

12