• User

    do_action : è possibile aggiungere funzioni?

    salve a tutti,
    sto utilizzando il plugin woocommerce. Per chi non lo conoscesse, woocommerce è un plugin per gestire un negozio online. Personalmente credo che per piccole attività sia una soluzione percorribile, è facile da utilizzare da parte del cliente, e da parte di chi tira su il sito. Ma ho bisogno di una piccola modifica. Vi spiego il mio problema: il negozio a cui sto facendo il sito, vende abbigliamento vintage e dispone di una sola unità per ogni capo d'abbigliamento. Il cliente si è raccomandato di una cosa: dal momento che il cliente clicca su "aggiungi al carrello", il prodotto ( che è uno solo ) deve andare in "sold out". Woocommerce non ha questa peculiarità, ma mette il prodotto in "sold out" solo dopo che l'ordine è stato elaborato, quindi dopo che il cliente ha fatto checkout.
    Cercando di modificare da me il plugin, ho notato soltanto che forse potrei cavarmela modificando la pagina "simple.php" che si trova nel percorso "templates/single-product/add-to-cart del plugin.
    nella riga 48, successivamente alla chiusura del form che ha il bottone "add to cart", trovo questo :

    [PHP]
    <?php do_action('woocommerce_after_add_to_cart_form'); ?>
    [/PHP]

    Woocommerce tra le sue funzioni ha quella che riduce o aumenta la quantità di prodotto disponibile in magazzino, e credo che in questa riga io debba andare a ridurre lo stock per mandare in sold out il prodotto. In precedenza ho dovuto modificare un plugin e mi sono imbattuto in questa funzione :
    [PHP]
    function process_payment( $order_id ) { global $woocommerce; $order = new WC_Order( $order_id ); // Mark as on-hold (we're awaiting the payment) $order->update_status('on-hold', __('In attesa di versamento Postepay', 'woocommerce')); // Reduce stock levels $order->reduce_order_stock(); // Remove cart $woocommerce->cart->empty_cart(); // Empty awaiting payment session unset($_SESSION['order_awaiting_payment']); // Return thankyou redirect return array( 'result' => 'success', 'redirect' => add_query_arg('key', $order->order_key, add_query_arg('order', $order->id, get_permalink(woocommerce_get_page_id('thanks')))) ); }}[/PHP]
    Penso che potrei prendere spunto da questa funzione per fare le opportune modifiche, ma non so cosa fare con il do_action della riga 48. Qualcuno può/vuole aiutarmi? Grazie!


  • User Attivo

    Ma perchè non chiedi a Woothemes?


  • User

    Sto chiedendo a tutti, anche a loro 🙂