Hoe kan ik het Woocommerce-voorraadbedrag en de voorraadstatus weergeven op Woocommerce-archiefpagina’s?

Hoe kan ik het Woocommerce-voorraadbedrag en de voorraadstatus weergeven op Woocommerce-archiefpagina’s?

Soms is het nodig om het Woocommerce-voorraadbedrag en de voorraadstatus weer te geven op Woocommerce-archiefpagina’s. Daarom zal dit fragment je helpen.

Het zal de voorraad van Woocommerce en de voorraadstatussen als volgt weergeven:

  • 25 op voorraad
  • Geen voorraad meer
  • Op voorraad
  • beschikbaar op nalevering
  • Voor variabele producten kan het zijn “Op voorraad (sommige artikelen)”
//* Enqueue scripts
add_action( 'wp_enqueue_scripts', 'wpsh_stock_status_archive', 11 );
function wpsh_stock_status_archive() {

	// Activate clip styles
	wp_enqueue_style(  'wpsh-stock-status-archive-style', 
						plugins_url( 'clip-style.css', __FILE__ ), array(),
						'1.0.0' 
	);
}

//* Add stock status to archive pages
add_action( 'woocommerce_after_shop_loop_item', 'wpsh_add_stock_status_archive', 3 );
function wpsh_add_stock_status_archive() {

    global $product;
	$availability = $append = null;

	// Add status for single products
	if( $product->is_type( 'simple' ) ) {

		$availability = $product->get_availability();
		$class = $availability[ 'class' ];
		$output = $availability[ 'availability' ];
	}

	// Add status for variable products
	elseif( $product->is_type( 'variable' ) ) {

		$status = array();

		// Get status class for each variation
		foreach ( $product->get_children() as $child_id ) {
			
				$variation = $product->get_child( $child_id );
				$availability = $variation->get_availability();
				
				// Abandon if stock management is disabled on any variation
				if( ! array_filter( $availability ) )
					return;

				$status[] = $availability[ 'class' ];
		}

		/**
		 * Compile final output and class based on
		 * availability classes set by WooCommerce
		 */
		if( in_array( 'in-stock', $status ) ) {
			$output = __( 'In stock', 'wp-clips' );
			$class = 'in-stock';
		}
		elseif( in_array( 'available-on-backorder', $status ) ) {
			$output = __( 'Available on backorder', 'wp-clips' );
			$class = 'available-on-backorder';
		}
		elseif( in_array( 'out-of-stock', $status ) ) {
			$output = __( 'Out of stock', 'wp-clips' );
			$class = 'out-of-stock';
		}

		// Append output if some items out of stock or available on backorder
		if( ( in_array( 'available-on-backorder', $status ) && $class == 'in-stock' ) ||
			( in_array( 'out-of-stock', $status ) && $class != 'out-of-stock' ) )
			$append = ' ' . __( '(some items)', 'wp-clips' );
	}

	// Output only if set 
	if( isset( $availability ) ){
		echo '' . esc_html( $output ) . esc_html( $append ) . '';	
	}
}

Net als bij de andere fragmenten kun je het aanpassen met dit stukje CSS.

/* Display Woocommerce stock amount and stock status on Woocommerce archive pages */
.archive-stock  {
	font-size: 13px;
	margin: 5px 0px 10px 0px;
}

De snippets die hier getoond worden kunnen toegevoegd worden in de function.php van het thema welke uw WordPress gebruikt. Wees verstandig en weet wat u doet.

Deze snippets kunnen vrij gebruikt worden, dat is ook de reden waarom wij deze met u delen. Selecteer de code en klik het “copy” icoontje om de code te kopiëren naar uw ‘functions.php‘.

Nuttige functies met PHP: Een diepgaande gids voor het gebruik van functions.php

Het toevoegen van aangepaste codes aan het functions.php bestand van je WordPress-thema kan een krachtige manier zijn om extra functionaliteit aan je website toe te voegen. En het mooie is dat je dit kunt doen zonder te verdwalen in ingewikkelde technische termen.

Stap 1: Open je thema’s “functions.php” bestand Stel je dit bestand voor als de motor van je website, waar alle coole trucjes worden uitgevoerd. Ga naar je WordPress-beheerdersdashboard, klik op “Weergave” en selecteer vervolgens “Thema-editor”. Hiermee krijg je toegang tot het hart van je website.

Stap 2: Ontgrendel de codekrachten Binnen de thema-editor zie je aan de rechterkant een lijst met bestanden. Blader door de lijst en zoek het “functions.php” bestand. Dit is de plek waar de magie begint. Klik erop en laat de codekrachten vrij!

Stap 3: Voeg je gewenste code toe Nu je je bevindt in de magische wereld van de code, is het tijd om je gewenste functionaliteit toe te voegen. Misschien wil je een aangepaste functie maken om de productknop “Toevoegen aan winkelwagen” te vervangen door iets verleidelijkers, zoals “Product al in winkelwagen”. Voeg gewoon de bijbehorende code toe (die ik je eerder heb gegeven) aan het einde van het bestand.

Stap 4: Opslaan en genieten van de resultaten Zodra je de code hebt toegevoegd, klik je op de magische “Update File” knop om je wijzigingen op te slaan. En dat is het! Je hebt zojuist je website betoverd met aangepaste functionaliteit. Bewonder nu je werk en geniet van de resultaten.

Met functions.php kunnen ontwikkelaars aangepaste functies definiëren en bestaande functionaliteiten aanpassen. Het is een handige plek om functies te schrijven die specifieke taken uitvoeren, zoals het registreren van aangepaste posttypes, het toevoegen van nieuwe widgets, het implementeren van aangepaste kortcodes, het wijzigen van thema-opties en nog veel meer. Door functies te definiëren in functions.php, kunnen ontwikkelaars de codebase van een website beter organiseren en onderhouden. Het maakt het gemakkelijker om wijzigingen aan te brengen en biedt een gestructureerde benadering van het toevoegen van aangepaste functionaliteiten. Bovendien kunnen deze functies vanuit verschillende delen van de website worden opgeroepen, waardoor hergebruik en consistentie worden bevorderd.

Functions.php fungeert als een centrale hub voor het beheren van hooks en filters in WordPress. Hooks stellen ontwikkelaars in staat om specifieke acties te koppelen aan gebeurtenissen in het WordPress-uitvoeringsproces, zoals het laden van thema’s of het weergeven van inhoud. Filters daarentegen bieden de mogelijkheid om gegevens te wijzigen voordat ze worden weergegeven. Met behulp van hooks en filters in functions.php kunnen ontwikkelaars de functionaliteit van thema’s en plugins uitbreiden en aanpassen op een gecontroleerde en gestandaardiseerde manier.