Version: 4.3.latestGruß Pinky
vermutlich ein WP_Widget problem
/* Die verwendete Konstruktoren-Methode für WP_Widget ist seit Version 4.3.0 veraltet! Verwende stattdessen
schalte mal WordPress in den Debug-Modus
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellen
Version: 4.3.latestGruß Pinky
vermutlich ein WP_Widget problem
/* Die verwendete Konstruktoren-Methode für WP_Widget ist seit Version 4.3.0 veraltet! Verwende stattdessen
schalte mal WordPress in den Debug-Modus
Alle dieser Dateien geben vor, dass sie Ende 2014 erstellt wurden und haben z.B. folgende Namen:
- alias10.php
- user98.php
- include.php
- dirs22.php
- general32.php
- system.php
- system63.php
- functions20.php
- utf.php
Ich habe jetzt alle Dateien (und es waren deutlich mehr als oben aufgezählt) von Hand gelöscht.
Wenn die Scripte in dem verzeichnis ~/uploads/ waren solltest du verhindern, dass PHP Scripte dort ausgeführt werden können.
also
http://example.org/wp-content/uplodas/2015/09/script.php
darf nicht funktionierten - bitte den Link nicht mit Schadsoftware ausprobieren, da dur dir dann vermutlich einen Trojana installierst.
erstelle dir zur prüfung eine php_info.php Datei
mit
wp-content/uplodas/2015/09/php_info.php
sollte dein Browser, die die Konfiguration von PHP zeigen, solltest du unbedingt verhindern, dass PHP Scripte dort ausgeführt werden.
Wenn dein Angreifer dir in das /uplaod/ Verzeichnis dateinen hochladen konnte, dann konnte er dies auch in den andeen Verzeichnissen.
ich würde die alte Version vom Server löschen
alles ausser
~/wp-content/uploads/
~/wp-config.php
und dass was ich nicht gelöscht habe - auf Viren / schadecode prüfen
und eben eine saubere Datensicherung hochladen.
danach ein updates von
plugins, wordpress und theme machen.
Viel Glück
Ralf
ist aber n bisschen arg teuer für mich im Moment
es gibt eine Kostenlose Version (1 Produkt, 50 Kunden)
und bei jährlicher Zahlung wird es 77 Euro günstiger.
ok. wenn es nicht passt.
Hier wurden Member-Plugins besprochen. Evtl. helfen dir die Empfehlungen weiter?
http://www.selbstaendig-im-netz.de/2013/01/28/sof…fuer-wordpress/
wenn du keine angst vor heftiger konfiguration hast...
http://chrislema.com/best-wordpress-membership-plugin-2014/
Hallo,
Member Plugins gibt es viele. Einige meiner Kunden mögen Digimember ist allerdings kostenpflichtig.
Hilft dies weiter?
Ralf
ich habe plötzlich das problem, dass ich meine Seiten nicht mehr speichern kann.Ich glaube sagen zu können, dass das Problem seit dem Update auf Wordpress 4.3 auftritt.
vermutlich hast du ein WP_Widget Problem. Die verwendete Konstruktoren-Methode für WP_Widget ist seit Version 4.3.0 veraltet!
Da WordPress eine Server Anwendung und kein JavaScriptchen ist, musst du WordPress in den Debug-Modus Schalten. Wie dies geht
steht hier https://codex.wordpress.org/Debugging_in_WordPress
~/wp-config.php
Viel Glück
Evtl. sagt dir WordPress welche Probleme es beim speichern hat.
Ralf
Es geht um eine Produktvorstellung mit kleinem Onlineshop. Überall wird ja Yoast empfohlen, es scheint aber auch extrem viel Ressourcen zu benötigen und da ich eh die Hälfte der Einstellungen nicht verstehe und ziemlich wahrscheinlich auch nicht brauche, weiß ich nicht, ob es wirklich sinnvoll ist, es zu installieren.
Yoast gibt dir bei der Erfassung von Texten Hinweise was du verbessern kannst. Und bewertet deine Seite. Du kannst damit auch leichter Fehlervermeiden... und ja - die Konfiguration ist kompliziert.
In einem Business Umfeld verwendet man keine selbstgetöpferte Websites...
[wp_cart_button name="Test Product" price="24,95"].
1. Ist es Möglich hier in Price die JS Variabel response einzubinden?
ohne Änderung an dem Plugin kannst du keine dynamische Preis-Abfrage einbauen. Du übergibst hier nur einen Wert und eine Variable:
WordPress Handbuch
https://codex.wordpress.org/Shortcode_API
ist das WP-Optimize Plugin eigentlich Sinnvoll? Gerade bei der SQL ist es doch denke ich sehr gefährlich oder?
Eine MySQL Datenbank muss / sollte gepflegt werden. Durch Eintragungen und Löschungen wird die MySQL Datenbank _langsammer_
Ein Überhang kann entstehen, wenn viele Daten geändert oder z.B. gelöscht werden. Dieser Überhang ist nicht genutzter Speicher und wird sich stetig bei Änderungen vergrößern. Daher ist es ratsam von Zeit zu Zeit eine Tabelle zu optimieren, um diesen Speicher wieder freizugeben.
Sind alle Tabellen mit Überhang ermittelt, optimiert eine Funktion jede der zu optimierenden Tabellen.
MySQL - Datenbank Wartung ist sinnvoll und meiner Meinung nach notwendig... User, die keine Ahnung von MySQL und Datenbank Wartung haben - verwenden wilde Plugins.
Wenn man diese Pugins verwendet, sollte man - meiner Meinung nach - _vorher_ eine Datenbank Sicherung erstellen! ich verwende WP-Optimize und es funktioniert.
Der Fehler muss irgendwo hier liegen:
hier noch einmal das Beispiel von
http://codex.wordpress.org/Template_Tags/get_posts
in $prevPost sollte ein Array für die Abfrage sein.
<?php
$args = array( 'posts_per_page' => 10, 'order'=> 'ASC', 'orderby' => 'title' );
$postslist = get_posts( $args );
foreach ( $postslist as $post ) :
setup_postdata( $post ); ?>
<div>
<?php the_date(); ?>
<br />
<?php the_title(); ?>
<?php the_excerpt(); ?>
</div>
<?php
endforeach;
wp_reset_postdata();
?>
Alles anzeigen
ein wp_reset_postdata(); fehlte mir und der inhalt vom Array ($prevPost)
Hier zur inspiration
http://callmenick.com/post/custom-wo…with-pagination
hallo,
ich habe nicht viel gelesen...
Die Zeile bringt sicherlich viele Probleme
verwende besser:
und nachfolgendes sieht wild aus:
global $post;
$aktuell = $post->ID; // ID von aktuellem Beitrag
$categories = get_the_category();
$thiscat = $categories[0]->cat_ID; // Kategorie auslesen
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
^- was hast du vor?
egal - verwende anstelle
besser:
absint kannst du nachlesen
https://developer.wordpress.org/reference/functions/absint/
$args = array(
'posts_per_page' => 1,
'paged' => $paged,
'orderby' => 'date',
'order' => 'ASC',
'cat' => $thiscat,
'post_status' => 'publish'
);
paged? hier? keine ahnung, es ist spät.
https://codex.wordpress.org/Template_Tags/get_posts
Ist das Jobforum ausgefallen?
aber mit Schnittstellen noch garnicht, mal gucken, ob ich da Tutorials zu finde.
Ich habe die Daten damlas mit BMEcat ausgetaucht. der Dienstleister hatte etwas von Haufe / Lexware.
https://de.wikipedia.org/wiki/BMEcat
Ich würde auch gern selber drucken, leider habe ich die Maschinen für Leinwanddrucke auf Keilrahmen nicht.
gut abgelagertes Holz für Keilrahmen bekommst du bei Boesner aus Witten und den Drucker kann man leasen oder gebraucht kaufen. Leinwand bekommst du zum Beispiel von http://www.hahnemuehle.com/de/digital-fineart.html ... wenn Qualität wichtig ist...
Und von Servern habe ich auch keine Ahnung, soll ja auch kein großer Shop werden aber ein zweites Standbein aufbauen ist immer gut.
du übergibst dem Dienstleister, die Bild-nummer, die gedruckt werden soll. (oder den Pfad zur Datei)
dein Deinstleister benötigt für die Erstellung noch die Abmessungen
und an welche Adresse geliefert werden soll.
Das sind maximal 25 Zeilen XML die du auf deinem Server abspeicherst und der Dienstleister aus seiner PPS sich vom Server eben abholt.
Da ist nichts bei. Du musst hier nur wissen, wie er die Daten benötigt und kannst dir einen Entwikler über ein Job-Portal suchen.
Und von Servern habe ich auch keine Ahnung
kann man fertig mit Service mieten.
Bei geringen Stückzahlen würde ich über eine automatische Mail nachdenken. Hier sendest du die Daten einfach per e-Mail an den Dienstleister weiter oder er holt sich den Auftrag aus deinem Shop ab. Hier meldet sich der Dienstleister an den Shop an und wenn der Auftrag erledigt ist, sendet dieser über den Shop an den Kunden, die Versand-Informationen.
Also einfaches Drop Shipping
https://de.wikipedia.org/wiki/Streckengesch%C3%A4ft
Da muss auch keine Schnittstelle geschrieben werden.
ich würde gerne Fotos auf leinwand anbieten, also meine eigenen. Gibt es da eine Schnittstelle oder ein plugin, was die Aufträge vom Käufer gleich an ein Labor weiterleitet oder sowas, der dann dann gleich herstellt? Weil ich kann ja nich den Kunden bestellen lassen und es dann sleebr bei Pixelnet zum Beispiel erstellen und an mich schicken und es dann erst den Kunden zukommen lassen? Und bitte nicht mit Pictrs oder fotograf.de oder sowas kommen. Möchte schon was eigenes.
Ich habe anfanges mir einen Dienstleister für Leinwanddrucke gesucht und im Shop die Daten angenommen und per Schnittstelle an den Dienstleister weitergegeben. Heute mache ich die Drucke selber und versende auch selber...
Da es zwischen den Leinwanddruck- Dienstleister erhebliche Qualtitätsunterschiede gibt - würde ich mir erst den passenden Dienstleister suchen und dann mir eine Schnittstelle eben erstellen lassen.
wenn du mit deinem Kunden nicht selber abrechnen möchtest, kannst du dir ja mal die Dienstleister ansehen, die z.b. Fotolia Bilder in ihrem Shop ausdrucken. Diese haben bereits eine online Schnittstelle und du gibst den Lead gegen eine Vergütung ab.
Edit: off-Topic: wer hat wp mit woocommerce bei all-inkl laufen?
ich nicht - ich würde bei eCommerce Projekten mit großen Datenbeständen per se einen eigenen Server empfehlen...
Für Woocommerce gibt es für Fotografen ein Plugin - dieses könntest du sicherlich für deine Ziele anpassen lassen.
spielt es aus seo sicht eine rolle?
Hauptproblem vieler Online Shopbetreiber ist
1. sie übernehmen die Bilder vom Hersteller
2. sie übernehmen die Produktbeschreibungen vom Hersteller.
Mit zichfach gleichen Texten erreichen diese Online Shops keine Sichtbarkeit bei Google.
eCommerce und auch SEO sind hier eigentlich OT. evtl. suchst du dier hierfür ein andres Forum.
können sich die pages inhaltlich voll unterscheiden?
Die Inhalte und die Gestaltung der Domains unterscheiden sich bei einer Multisite. Wenn du geliche Inhalte haben möchtest, muss du diese explizit kopieren.
Als SEO Nachteil könnte sich die gleiche ip-Adresse auswirken. Aber ob diese Meinung von mir noch Gültigkeit hat - solltest du mit SEO - Experten und nicht mit Bloggern / WordPress Anwendern diskutieren.
Das kann ich nicht bestätigen aber auch nicht leugnen. Von daher prüfe ich jetzt mal ob ich irgendwo tatsächlich doppelte Bezeichnungen verwendet habe. Aber es muss anscheinend wohl so sein. Komisch, dass dies erst jetzt "Probleme" macht. Danke an dieser Stelle schonmal für die Schützenhilfe!
Ich verwende in der Regel ein Plugin, dass mir eben die Datenbank-Abfragen aus WordPress anzeigt.
Du kommst evtl. auch mit
/* WordPress debug mode for developers. */
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'SCRIPT_DEBUG', true );
define( 'SAVEQUERIES', true );
weitere Informationen über SAVEQUERIES bei Frank
http://bueltge.de/wordpress-perf…ren-plugin/558/
bei ihm habe ich auch das Datenbank-Abfrage Tool mal gefunden
Wenn du WP_Query verwenden möchtest, findest du unter
https://codex.wordpress.org/Post_Types
eine Anleitung
$args = array( 'post_type' => 'product', 'posts_per_page' => 10 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
the_title();
echo '<div class="entry-content">';
the_content();
echo '</div>';
endwhile;
halte deinen Code nach Möglichkeit lesbar -
zum Beispiel mit
http://generatewp.com/post-type/
. Komisch, dass dies erst jetzt "Probleme" macht.
sicher? Oder ist es nur jetzt zufällig aufgefallen?
<?php global $wp_query; query_posts( array('post_type' => array( 'meinestadt' ),'showposts' => 1, 'paged' => $paged, 'category__in' => array(17) ) );?>
ich würde die query_vars eben aufrufen und mitgeben
https://codex.wordpress.org/Function_Reference/query_posts
global $wp_query;
$args = array_merge( $wp_query->query_vars, array('post_type' => array( 'meinestadt' ),'showposts' => 1, 'paged' => $paged, 'category__in' => array(17) ) );
query_posts( $args );
^- nicht geprüft - und nicht getestet.
wobei
$args = array_merge( $wp_query->query_vars, array('post_type' => array( 'meinestadt' ),'showposts' => 1, 'paged' => $paged, 'category__in' => array(17) ) );
$args = array_merge( $wp_query->query_vars, array( 'post_type' => 'product' ) );
abweicht?!
- SSI Unterstützung
Server Side Include für PHP nicht notwendig...
- PHP Unterstützung (FastCGI / CGI Applekation / Apache Modul
einige mögen FastCGI - ist etwas für Leute, die kein Geld für einen Server haben ![]()
- CGI-Unterstützung (cgi-bin-Verzeichnis befindet sich ....)
CGI-Scripts benötigt Wordpress nicht unbedingt ... ein paar Werkzeuge / Tools verwenden dies.
_kann_ sinnvoll sein, wenn man die Scriptsprache kann - wenn nicht
- Perl-Unterstützung
- Python-Unterstützung
- FastCGI-Unterstützung (erforderlich für Ruby on Rails)
Verwendest du Perl, Python oder Ruby on Rails?
Beim Apache kann man sehr viel mit einer falschen Konfiguration falsch machen
https://www.thomas-krenn.com/de/wiki/Apache_Performance_Tuning
Habe mich noch nie mit diesem Thema beschäftig, da der Hoster das alles selber macht und vorgibt für Wordpress.
Eigentlich gibt man dem Hoster die gewünschte Server-Konfiguration vor... o.k. man kann auch etwas von 08/15 Massenhostern nehmen aber... die Möglichkeiten von PHP und die _möglichen_ Erweiterungen sind einfach zu vielfältig. Ich würde darauf nicht verzichten wollen....
Kann 4.3 überhaupt mit PHP 5.4 umgehen?
eigentlich ja ...
https://wordpress.org/about/requirements/
Wenn es eine Demo für Kunden ist? würde ich vermutlich meinen Kunden - dies zeigen wollen, was sie von mir auch erhalten...
Hier die Übersicht der Änderungen:
https://codex.wordpress.org/Version_4.3
Auf jeden Fall war der mega Alarm los und weil ich das Problem nicht sofort ermitteln und somit lösen konnte, musste ich erstmal wieder das komplett Backup vor dem Update auffahren. Dank automatischer SSH Datenbankbackups via Cronjob konnte ich zum Glück relativ gut das richtige Backup wieder herausziehen und neuinstallieren. Das Problem bestand aber trotzdem weiterhin, sodass ich damit ermitteln konnte, dass es wohl irgendwie an der neuen Wordpress Version liegen muss. Also wieder die alte Version aufgespielt und erstmal so belassen. Seitdem geht es auch jetzt erstmal wieder. Aber das kann ja aufgrund von Sicherheitslücken ja nicht die Lösung sein.
Der Relase 4.3 war kein Sicherheitsupdate sondern die übliche Veröffentlichung einer neuen Version - die wir auch *immer* zu Weihnachten bekommen.
zwischnen 4.2 und 4.3 gab es Änderungen an der Datenbank - evtl. hast du eine alte MySQL Version
WordPress solltest du mind.
PHP 5.4 or greater
MySQL 5.5 or greater
verwenden.
Deine Beschreibung kling nach einem ungepflegten System.
Ein Blick in die error-log Datei von MySQL könnte helfen
seit Monaten wissen die Entwickler was sich in WP 4.3 ändern wird,
Ich habe davon auch nichts mitbekommen.
Wenn man möchte, kann man sich die Beta Version von einer zukünftigen Version installieren und prüfen, ob die Entwicklung mit der zukünftigen Version funktioniert.... irgendwann verbrennt - bei nur _kostenlos_ - der Entwickler .
ist das nicht das Problem von WP sondern von denen.
Will man wirklich nur noch kostenpflichtige Plugin Entwickler? Die richtig guten Entwickler habe in den letzten Monaten das Projekt ja verlassen und viele machen aus dem Admin Bereich eine Litfasssäule für ihr Unternehmen....
sondern von denen und leider nicht _von uns_. Ich stelle mir eine Community anders vor.
Alles anzeigen
// if product not found, add it
if ( ! $found ){
$woocommerce->cart->add_to_cart( $product_id );
}} else {
// if no products in cart, add it
$woocommerce->cart->add_to_cart( $product_id );
}
}
}
}
Das Script legt dir aber _immer_ ein Produkt in den Wartenkorb.
würde für den Anfang löschen.
und was soll dies werden?
verwende evtl.
was ist dies?
if( $woocommerce->cart->total >= $cart_total ) {
//check if product already in cart
if ( sizeof( $woocommerce->cart->get_cart() ) > 200 ) {
verwende evtl.
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if ( $_product->id == $product_id )
$found = true;
}
ist nicht cart_contents gemeint?
if ( is_array( $woocommerce->cart->cart_contents() ) ) {
foreach ( $woocommerce->cart->cart_contents() as $cart_item_key => $values ) {
$_product = $values['data'];
if ( $_product->id == $product_id )
$found = true;
}
}
Jetzt zu deiner eigentlich Frage. mit der $product_id kannst du leider kein Produkt aus dem Warenkorb mehr löschen.
du benötigst für das Löschen die $cart_item_key
Wenn du $found = true; und
if ( is_array( $woocommerce->cart->cart_contents() ) ) {
foreach ( $woocommerce->cart->cart_contents() as $cart_item_key => $values ) {
$_product = $values['data'];
if ( $_product->id == $product_id )
$found = true;
}
}
if( $woocommerce->cart->total >= $cart_total ) {
if ( ! $found ){
$woocommerce->cart->add_to_cart( $product_id );
}
} else {
if ( $found === true) {
// must du die $cart_item_key erzeugen / auslesen -
$woocommerce->cart->remove_cart_item( $cart_item_key );
}
}
Alles anzeigen