linkedin

Θέματα

⌘K
  1. /
  2. /
  3. Θέματα
  4. /

Αποσπάσματα κώδικα

Αυτό είναι ένα Επίπεδο προγραμματιστή έγγραφο. Εάν δεν είστε εξοικειωμένοι με τον κώδικα/προτύπων και την επίλυση πιθανών συγκρούσεων, παρακαλούμε απευθυνθείτε σε έναν προγραμματιστή που είναι εξοικειωμένος με το FooSales ή/και το WooCommerce. Αυτά τα αποσπάσματα παρέχονται από ευγένεια και προορίζονται ως σημείο εκκίνησης για να βοηθήσουν σε τυχόν ειδικές ανάγκες προσαρμογής. Δεν είμαστε σε θέση να παρέχουμε υποστήριξη για προσαρμογές στο πλαίσιο των Όροι χρήσης.

Καταγραφή τελών Square κατά την ολοκλήρωση μιας παραγγελίας #

Εάν χρησιμοποιείτε ένα πρόσθετο εξαγωγής τρίτου μέρους για να εξάγετε τις παραγγελίες σας και επεξεργάζεστε τις πληρωμές με το Square, ίσως να θέλετε να συμπεριλάβετε τα τέλη που αφαιρεί το Square από την πληρωμή στην εξαγωγή των πωλήσεών σας. Από προεπιλογή, το FooSales δεν αποθηκεύει κανένα δεδομένο που λαμβάνεται από το Square εκτός από το αναγνωριστικό παραγγελίας Square που δημιουργείται μετά την επιτυχή επεξεργασία μιας πληρωμής. Μπορείτε να βάλετε το FooSales να αποθηκεύσει τα τέλη επεξεργασίας Square ως κρυφή μετα-τιμή για τις παραγγελίες WooCommerce που έχουν συλλεχθεί μέσω του FooSales και στις οποίες χρησιμοποιήθηκε το Square ως μέθοδος πληρωμής.

Προσθέστε το ακόλουθο κομμάτι κώδικα στο θέμα σας functions.php αρχείο το οποίο θα ελέγχει αν μια παραγγελία έχει αναγνωριστικό παραγγελίας Square όταν χαρακτηρίζεται ως ολοκληρωμένη. Στη συνέχεια, θα χρησιμοποιήσει το API Square για να ανακτήσει την παραγγελία Square από το λογαριασμό σας, θα προσθέσει όλα τα τέλη πληρωμής που αφορούν την εν λόγω παραγγελία και θα τα αποθηκεύσει ως μετα-πεδίο για την παραγγελία WooCommerce.

add_action('woocommerce_order_status_completed', function($order_id) {
    $square_order_id = get_post_meta($order_id, "_foosales_square_order_id", true);
    
    if ( !empty($square_order_id) ) {
        //FooSales config
        $config = new FooSales_Config();

        //API helper methods
        require_once($config->helper_path.'foosales-api-helper.php');
        
        $order_result = fsfwc_get_square_order($square_order_id); // Uses the Square API to retrieve the order
        $square_fees = 0.0;
        
        if ( $order_result['status'] === 'success' ) {
            $order = $order_result['order'];
            
            if ( !empty($order['tenders']) ) {
                foreach ( $order['tenders'] as $tender ) {
                    $square_fees += ((float)($tender['processing_fee_money']['amount']) / 100.0); // The fee is returned as cents, so divide it by 100.0
                }
            }
        }
        
        update_post_meta($order_id, "_foosales_square_fee_amount", $square_fees);
    }
});

Προσθέστε το σημείωμα παραγγελίας από το FooSales στα email του διαχειριστή του WooCommerce. #

Προσθέστε το ακόλουθο κομμάτι κώδικα στο θέμα σας functions.php αν θέλετε η "Σημείωση παραγγελίας" που προσθέσατε στην παραγγελία στο FooSales να εμφανίζεται στα emails του διαχειριστή του WooCommerce.

add_action( 'woocommerce_email_order_meta', 'woo_add_order_notes_to_email', 10, 4 ),

function woo_add_order_notes_to_email($order, $sent_to_admin, $plain_text, $email) {

	if ( isset($post->ID) )
		$id = $post->ID,
	else
		$id = $order->ID,


	if ($sent_to_admin && 'foosales_app' === get_post_meta($id, "_foosales_order_source", true)) {
		$args = array(
			'order_id' => $id,
			'type' => ''
		);
		
		$notes = wc_get_order_notes( $args ),
		
		echo '<h2>' . __( 'Σημειώσεις παραγγελίας', 'woocommerce' ) . '</h2>';

		echo '<ul class="order_notes">';

		if ( $notes ) {
				?&gt;
				<li>
					<div class="note_content">
						<?php echo wpautop( wptexturize( wp_kses_post( $notes[count($notes)-1]->content ) ) ); ?>
					</div>
				</li>
				<?php
		} else {
			echo '<li>' . __( 'Δεν υπάρχουν ακόμα σημειώσεις για αυτή την παραγγελία.', 'woocommerce' ) . '</li>';
		}

		echo '</ul>';
	}
}

Άρθρα