Ak chcete uľahčiť zákazníkom opakované objednávanie toho istého tovaru, ktorý už raz objednali, môžete pridať do zoznamu objednávok tlačidlo „Objednať znova“. Toto tlačidlo je úplne rovnaké ako to, ktoré sa nachádza pri každej objednávke po jej zobrazení.
/** * Pridanie tlačidla "Objednať znova" do výpisu objednávok na stránke zákazníka * @param $action|array * @param $order|WC_Order * * @return array|void * * url: wp-admin.sk/snippets/pridanie-tlacitka-objednat-znova-do-zoznamu-faktur-v-ucte-zakaznika/ */ function viking_order_again_button( $action, $order ) { if ( ! $order || ! $order->has_status( apply_filters( 'woocommerce_valid_order_statuses_for_order_again', [ 'completed' ] ) ) || ! is_user_logged_in() ) { return; } $url = wp_nonce_url( add_query_arg( 'order_again', $order->get_id(), wc_get_cart_url() ), 'woocommerce-order_again' ); $action['order-again'] = [ 'name' => __( 'Order again', 'woocommerce' ), 'url' => $url, ]; return $action; } add_filter( 'woocommerce_my_account_my_orders_actions', 'viking_order_again_button', 1000, 2 );
V snippete je použitý filter woocommerce_my_account_my_orders_actions
. Filter nám poskytuje 2 parametre: $action
– pole s akciami pre objednávku a $order
– objekt objednávky.
Na začiatku sa kontroluje, či máme objekt $order
a či má status „Vybavená“ – completed
a tiež, či je zákazník prihlásený is_user_logged_in()
. Zvyšok kódu je prevzatý z funkcie: woocommerce_order_again_button()
.
Tento snippet môžte umiestniť do functions.php vašej aktuálnej témy, ale vhodnejšie je si na to vytvoriť vlastný plugin. Viac o vytvorení pluginu, nájdete TU.