kostenloser Webspace werbefrei: lima-city


Funktion Zeitgesteuert auslösen - Template Katalogmodus

lima-cityForumDie eigene HomepageHomepage Allgemein

  1. Autor dieses Themas

    manhu

    manhu hat kostenlosen Webspace.

    Hi,
    ich wollte mal fragen, ob sich jemand auskennt wie man eine Funktion (Katalogmodus) die bereits im Teamplate Woodmart vorhanden ist, zeitgesteuert ein bzw. ausschalten kann. Oder hinweise wo ich den Code finde und dementsprechend umschreiben kann.

    Katalogmodus macht im endeffekt den Shop woocommerce zu einem Katalog, es entfernt alles Buttons zum Warenkob hinzufügen, bzw. Kauf Button.

    Um es einfacher zu machen, habe ich bereits ein seperates Template mit zugangsdaten erstellt wo mann basteln und Probieren kann.

    Benutzer: Lima
    Passwort: Lima-345*
    https://woodmart.manhu.org/wp-login.php

    Diese Funktion findet man unter:
    Theme Settings / Shop / Catalog mode

    Was ich gerne erreichen möchte ist, dass das Katalogmodus zu einem bestimmten Wochentag und zur bestimmten Uhrzeit automatisch an geht und zu einem weiteren Wochentag und Uhrzeit wieder aus geht. Also z.b. Wochenende Freitag 16 Uhr Katalogmodus an und Sonntag 20 Uhr Katalogmodus wieder aus, oder Urlaubszeit,..

    Nach dem Code zu urteilen, ist der ganze unterschied zwischen on und Off nur eine Zahl
    <input type="hidden" name="xts-woodmart-options[catalog_mode]" value="">
    <input type="hidden" name="xts-woodmart-options[catalog_mode]" value="1">


    Hab dazu zwei Bilder in die Profilgalerie geladen, leider sieht man da nicht sehr viel darauf. Ich hoffe ich hab alles verständlich beschreiben können.

    Freue mich schon auf eure Nachrichten und Danke für eure Hilfe.

    Lg. Andy
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi,

    Cronjob erstellen. Wenn du ein Script aufrufst, dass es dann zu einem bestimmten Zeitpunkt automatisiert umstellt und wieder zurück stellt. Das kannst du beliebig steuern.

    bspw: cron-job.org
  4. Autor dieses Themas

    manhu

    manhu hat kostenlosen Webspace.

    Hey,

    danke ein guter Tipp, hab mir einige Youtube Videos zu Cronjobs angeschaut und Lima bietet diese möglichkeit auch an. Ich weis jetzt zwas was Cronjobs sind und wie man Sie einstellt, nur wie kriege ich raus welchen Code ich wo eingeben muss ....

    Also unter Domain / wp-cron.php steht vollgendes drin

    <?php
    /**
     * A pseudo-CRON daemon for scheduling WordPress tasks
     *
     * WP Cron is triggered when the site receives a visit. In the scenario
     * where a site may not receive enough visits to execute scheduled tasks
     * in a timely manner, this file can be called directly or via a server
     * CRON daemon for X number of times.
     *
     * Defining DISABLE_WP_CRON as true and calling this file directly are
     * mutually exclusive and the latter does not rely on the former to work.
     *
     * The HTTP request to this file will not slow down the visitor who happens to
     * visit when the cron job is needed to run.
     *
     * @package WordPress
     */
    
    ignore_user_abort( true );
    
    /* Don't make the request block till we finish, if possible. */
    if ( function_exists( 'fastcgi_finish_request' ) && version_compare( phpversion(), '7.0.16', '>=' ) ) {
    	if ( ! headers_sent() ) {
    		header( 'Expires: Wed, 11 Jan 1984 05:00:00 GMT' );
    		header( 'Cache-Control: no-cache, must-revalidate, max-age=0' );
    	}
    
    	fastcgi_finish_request();
    }
    
    if ( ! empty( $_POST ) || defined( 'DOING_AJAX' ) || defined( 'DOING_CRON' ) ) {
    	die();
    }
    
    /**
     * Tell WordPress we are doing the CRON task.
     *
     * @var bool
     */
    define( 'DOING_CRON', true );
    
    if ( ! defined( 'ABSPATH' ) ) {
    	/** Set up WordPress environment */
    	require_once __DIR__ . '/wp-load.php';
    }
    
    /**
     * Retrieves the cron lock.
     *
     * Returns the uncached `doing_cron` transient.
     *
     * @ignore
     * @since 3.3.0
     *
     * @global wpdb $wpdb WordPress database abstraction object.
     *
     * @return string|false Value of the `doing_cron` transient, 0|false otherwise.
     */
    function _get_cron_lock() {
    	global $wpdb;
    
    	$value = 0;
    	if ( wp_using_ext_object_cache() ) {
    		/*
    		 * Skip local cache and force re-fetch of doing_cron transient
    		 * in case another process updated the cache.
    		 */
    		$value = wp_cache_get( 'doing_cron', 'transient', true );
    	} else {
    		$row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", '_transient_doing_cron' ) );
    		if ( is_object( $row ) ) {
    			$value = $row->option_value;
    		}
    	}
    
    	return $value;
    }
    
    $crons = wp_get_ready_cron_jobs();
    if ( empty( $crons ) ) {
    	die();
    }
    
    $gmt_time = microtime( true );
    
    // The cron lock: a unix timestamp from when the cron was spawned.
    $doing_cron_transient = get_transient( 'doing_cron' );
    
    // Use global $doing_wp_cron lock, otherwise use the GET lock. If no lock, try to grab a new lock.
    if ( empty( $doing_wp_cron ) ) {
    	if ( empty( $_GET['doing_wp_cron'] ) ) {
    		// Called from external script/job. Try setting a lock.
    		if ( $doing_cron_transient && ( $doing_cron_transient + WP_CRON_LOCK_TIMEOUT > $gmt_time ) ) {
    			return;
    		}
    		$doing_wp_cron        = sprintf( '%.22F', microtime( true ) );
    		$doing_cron_transient = $doing_wp_cron;
    		set_transient( 'doing_cron', $doing_wp_cron );
    	} else {
    		$doing_wp_cron = $_GET['doing_wp_cron'];
    	}
    }
    
    /*
     * The cron lock (a unix timestamp set when the cron was spawned),
     * must match $doing_wp_cron (the "key").
     */
    if ( $doing_cron_transient !== $doing_wp_cron ) {
    	return;
    }
    
    foreach ( $crons as $timestamp => $cronhooks ) {
    	if ( $timestamp > $gmt_time ) {
    		break;
    	}
    
    	foreach ( $cronhooks as $hook => $keys ) {
    
    		foreach ( $keys as $k => $v ) {
    
    			$schedule = $v['schedule'];
    
    			if ( $schedule ) {
    				wp_reschedule_event( $timestamp, $schedule, $hook, $v['args'] );
    			}
    
    			wp_unschedule_event( $timestamp, $hook, $v['args'] );
    
    			/**
    			 * Fires scheduled events.
    			 *
    			 * @ignore
    			 * @since 2.1.0
    			 *
    			 * @param string $hook Name of the hook that was scheduled to be fired.
    			 * @param array  $args The arguments to be passed to the hook.
    			 */
    			do_action_ref_array( $hook, $v['args'] );
    
    			// If the hook ran too long and another cron process stole the lock, quit.
    			if ( _get_cron_lock() !== $doing_wp_cron ) {
    				return;
    			}
    		}
    	}
    }
    
    if ( _get_cron_lock() === $doing_wp_cron ) {
    	delete_transient( 'doing_cron' );
    }
    
    die();


    Hoffe mir kann da jemand weiterhelfen :)
  5. Hi,

    also auf der Seite die ich dir geschickt habe einfach die Zeit auswählen und das wird automatisch ausgeführt. Ist vor allem einfacher, da du nicht am Cron Code rum basteln musst. Wenn du es selbst machen willst, dann musst du sicher stellen, dass die Funktion, die du willst richtig eingestellt ist. Am Besten allerdings über ein Tutorial das Einstellen erlernen, denn es nicht so trivial einfach den Code zu kopieren und hoffen dass alles passt.
  6. Autor dieses Themas

    manhu

    manhu hat kostenlosen Webspace.

    tchiarcos schrieb:
    Hi,

    also auf der Seite die ich dir geschickt habe einfach die Zeit auswählen und das wird automatisch ausgeführt. Ist vor allem einfacher, da du nicht am Cron Code rum basteln musst. Wenn du es selbst machen willst, dann musst du sicher stellen, dass die Funktion, die du willst richtig eingestellt ist. Am Besten allerdings über ein Tutorial das Einstellen erlernen, denn es nicht so trivial einfach den Code zu kopieren und hoffen dass alles passt.


    Ok, aber ich verstehe das Grundprinziep immer noch nicht. Ich muss ja angeben welche datei bzw. URL dann ausgeführt wird. Wocher weiss ich also was geladen wird, bzw. ich kann ja den Katalogmodus einschalten und den Veränderten code kopieren, nur wo befindet der sich? PHP wird ja nicht angezeigt... Oder wo wird der code geschrieben das die Fuktion von diesem Button in WP-Backend angezeigt wird. Weis nicht wie ich es deutlicher formulieren soll, hoffe du verstehst mich.

    Hast du ein Turoiral zu empfehlen? Ich glaube da kommen wir nicht weiter, muss mal umhören wer mir da weiterhelfen kann. Danke dir tchiarcos.
  7. AAhh, hab deine Frage offensichtlich nicht komplett verstanden gehabt!

    Also du schreibst eine PHP, die automatisiert den Wechsel zu Katalogmodus sicherstellt. Dieses Script wird dann per Cronjob aufgerufen (das wäre dann dein Funktionsaufruf, den du in dem Cronjob linkst). Gleiches Prinzip, nur umgekehrt dann mit dem Zurückstellen.

    Das kann entweder mit einer PHP oder mit zweien gelöst werden, dementsprechend auch mit ein oder 2 Cronjobs.
    Prinzipiell einfach ne PHP schreiben, die dann das Umschalten bei Aufruf durchführt. Der Aufruf könnte auch manuell erfolgen auf die Gleiche Art und Weise.
  8. Autor dieses Themas

    manhu

    manhu hat kostenlosen Webspace.

    tchiarcos schrieb:
    AAhh, hab deine Frage offensichtlich nicht komplett verstanden gehabt!

    Also du schreibst eine PHP, die automatisiert den Wechsel zu Katalogmodus sicherstellt. Dieses Script wird dann per Cronjob aufgerufen (das wäre dann dein Funktionsaufruf, den du in dem Cronjob linkst). Gleiches Prinzip, nur umgekehrt dann mit dem Zurückstellen.

    Das kann entweder mit einer PHP oder mit zweien gelöst werden, dementsprechend auch mit ein oder 2 Cronjobs.
    Prinzipiell einfach ne PHP schreiben, die dann das Umschalten bei Aufruf durchführt. Der Aufruf könnte auch manuell erfolgen auf die Gleiche Art und Weise.


    Ja genau, nur wie mache ich das... Lieber wäre es mir, wenn es ohne Cronjob zu lösen wäre. Warst du inzwischen auf der Webseite? Da wo sich der Button befindent, könnte man auch noch eine Zeitsteuerung einbauen oder mit einem Script lösen. Hast du eine Idee wo ich da ansetzen könnte um das umzusetzen?

    Lg. Andy
  9. Hi,

    ich habs mir mal angesehen, allerdings müsste da wer ran, der das Programm besser versteht, um ein Script zur Umstellung aufzusetzen. Ich habe für alle wiederkehrenden Dinge jeweils Cronjobs laufen.

    Da habe ich dafür dann jweils Scripte erstellt, die dann aufgerufen werden und die Funktionen ausführen. Ich drück dir die Daumen, dass dir einer bei der Programmierung helfen kann, ich hab da leider nicht die Geduld mich so tief rein zu finden.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!