I got a problem with WooCommerce and my own Code [closed] - php

Closed. This question is not written in English. It is not currently accepting answers.
Stack Overflow is an English-only site. The author must be able to communicate in English to understand and engage with any comments and/or answers their question receives. Don't translate this post for the author; machine translations can be inaccurate, and even human translations can alter the intended meaning of the post.
Closed 8 days ago.
Improve this question
I got some problems with my Code. after coding it, everytime i wanna change the stock, a error appears: Hallo!
Seit WordPress 5.2 gibt es eine eingebaute Funktion, die erkennt, wenn ein Plugin oder ein Theme einen fatalen Fehler auf deiner Website verursacht, und dich deswegen mit dieser automatisierten E-Mail benachrichtigt.
In diesem Fall hat WordPress einen Fehler in deinem Theme „Open Shop Pro“ abgefangen.
Besuche zunächst deine Website () und überprüfe sie auf sichtbare Probleme. Besuche als nächstes die Seite, auf der der Fehler aufgetreten ist (.../wp-admin/post.php) und prüfe, ob es sichtbare Probleme gibt.
Bitte kontaktiere dein Hosting-Unternehmen, um Unterstützung bei der weiteren Untersuchung dieses Problems zu erhalten.
Wenn deine Website fehlerhaft zu sein scheint und du nicht mehr wie gewohnt auf dein Dashboard zugreifen kannst, hat WordPress jetzt einen speziellen „Wiederherstellungsmodus“. Auf diese Weise kannst du dich sicher in deinem Dashboard anmelden und weitere Untersuchungen durchführen.
Um deine Website zu schützen, läuft dieser Link in 1 Tag ab. Aber keine Sorge: Ein neuer Link wird dir per E-Mail zugeschickt, wenn der Fehler nach Ablauf der Frist erneut auftritt.
Wenn du Hilfe bei diesem Problem suchst, wirst du möglicherweise nach einigen der folgenden Informationen gefragt:
WordPress-Version 6.1.1
Aktives Theme: Open Shop Pro (Version 1.7.0)
Aktuelles Plugin: (Version )
PHP-Version 7.4.33
Fehler-Details
Ein Fehler vom Typ E_ERROR wurde in der Zeile 494 der Datei /www/htdocs/w01aa47b/[domain deleted by me]/wp-content/themes/openshop-pro/functions.php verursacht. Fehlermeldung: Uncaught Error: Call to a member function is_in_stock() on null in /www/htdocs/w01aa47b/[domain deleted by me]/wp-content/themes/openshop-pro/functions.php:494
Stack trace:
#0 /www/htdocs/w01aa47b/[domain deleted by me]/wp-includes/class-wp-hook.php(310): stock_catalog(Array)
#1 /www/htdocs/w01aa47b/[domain deleted by me]/wp-includes/plugin.php(205): WP_Hook->apply_filters(Array, Array)
#2 /www/htdocs/w01aa47b/[domain deleted by me]/wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-product.php(2098): apply_filters('woocommerce_get...', Array, Object(WC_Product_Variation))
#3 /www/htdocs/w01aa47b/[domain deleted by me]/wp-content/plugins/woocommerce/includes/wc-template-functions.php(3543): WC_Product->get_availability()
#4 /www/htdocs/w01aa47b/[domain deleted by me]/wp-content/plugins/woocommerce/includes/class-wc-product-variable.php(367): wc_get_stock_html(Object(WC_Product_Variation))
#5 /www/htdocs/w01aa47b/[domain deleted by me]/wp-content/plugins/woocommerce/includes/class-wc-product-variable.php(312): WC_Produc
I deactivated my code and it then the error did not came back. Can anyone help me / explain me why that happens? Would be awesome :)
The Code that is doing the problem is following:
`function stock_catalog() {
global $product;
if ($product->is_in_stock()&& !has_term(array('Basiskurs', 'Cupcake Kurs','Drip Cake Kurs', 'Fault Line Cake Kurs','Feriencamp','Figuren Modellierkurs','Ganache Motivtorten Kurs','Kindergeburtstag','Pinselmalerei mit Wafer Paper Blumen','Royal Icing Cookie Kurs' ), 'product_cat')) {
echo '<font color="#20bf6b"><div class="stock margin-top-10 margin-bottom-25"> ' . __('Verfügbar', 'text-domain') . '<i class="fa fa-check"></i> '. '</div></font>';
}
if ($product->is_in_stock()&& has_term(array('Basiskurs', 'Cupcake Kurs','Drip Cake Kurs', 'Fault Line Cake Kurs','Feriencamp','Figuren Modellierkurs','Ganache Motivtorten Kurs','Kindergeburtstag','Pinselmalerei mit Wafer Paper Blumen','Royal Icing Cookie Kurs' ), 'product_cat')) {
echo '<font color="#20bf6b"><div class="stock margin-top-10 margin-bottom-25"> ' .number_format($product->stock, 0, '', '') . __(' Verfügbar', 'text-domain') . '<i class="fa fa-check"></i> '.'</div></font>';
}
if (! $product->is_in_stock() ) {
echo '<font color="#eb3b5a"><div class="out-of-stock margin-top-10 margin-bottom-25"> ' . __('Nicht verfügbar', 'text-domain') . '<i class="fa fa-times"></i> ' . '</div></font>';
}
}
add_action('woocommerce_get_availability', 'stock_catalog');
add_action('woocommerce_after_shop_loop_item_title', 'stock_catalog');`

Related

Laravel Browsershot "node" not found

I got an error by using Browsershot in Laravel 8
(Laravel Code)
$content = view('welcome')->render();
return Browsershot::html($content)
->noSandbox()
->margins(18, 18, 24, 18)
->format('A4')
->showBackground()
->pdf(); }
Error
The command "node ^"C:^\xampp^\htdocs^\dashboard^\laravel8app^\vendor^\spatie^\browsershot^\src/../bin/browser.js^" ^"^{^\^"url^\^":^\^"file:^\/^\/C:^\^\Users^\^\User^\^\AppData^\^\Local^\^\Temp^\^\425041100-0302608001646305859^\^\index.html^\^",^\^"action^\^":^\^"pdf^\^",^\^"options^\^":^{^\^"args^\^":^[^\^"--no-sandbox^\^"^],^\^"viewport^\^":^{^\^"width^\^":800,^\^"height^\^":600^},^\^"displayHeaderFooter^\^":false,^\^"margin^\^":^{^\^"top^\^":^\^"18mm^\^",^\^"right^\^":^\^"18mm^\^",^\^"bottom^\^":^\^"24mm^\^",^\^"left^\^":^\^"18mm^\^"^},^\^"format^\^":^\^"A4^\^",^\^"printBackground^\^":true^}^}^"" failed. Exit Code: 1(General error) Working directory: C:\xampp\htdocs\dashboard\laravel8app\public Output: ================ Error Output: ================ Der Befehl "node" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
i fixed this with
->setNodeBinary('/usr/bin/node')

German characters in TCPDF - PHP [duplicate]

This question already has answers here:
TCPDF UTF-8 symbols not showing up
(16 answers)
utf8_encode function purpose
(4 answers)
Closed 1 year ago.
I cannot see German characters correctly in the generated pdf. Here is my code:
<?php
// Load autoloader (using Composer)
require __DIR__ . '/vendor/autoload.php';
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetPrintHeader(false);
$pdf->AddPage();
// create some HTML content
$html = '<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
Die angeführten Preise sind Fixpreise für eine schlüsselfertige Ausführung gemäß Leistungsbeschreibung und Ausstattungsliste
und gelten bei einem Vertragsabschluss bis 31.12.2021.<br/>
Die m²-Angaben sind Cirka-Maße. Geringfügige Abweichungen sind möglich und auf Grundrissvarianten oder technische
Änderungen, behördliche Vorschriften etc. zurückzuführen.<br/>
In den oben genannten Preisen sind sämtliche in vorliegender Preisliste angeführten Kaufnebenkosten (mit Ausnahme der
Beglaubigungskosten und Barauslagen im Zusammenhang mit der Eintragung im Grundbuch) enthalten, der Verkauf erfolgt
provisionsfrei direkt vom Bauträger. Kosten im Zusammenhang mit der Finanzierung (insbesondere auch Kosten für die
Bankgarantie) sind von der Käuferseite zu tragen.
</body>
</html>';
$pdf->writeHTML(utf8_encode($html), true, false, true, false, '');
$pdf->lastPage();
$lastPage = $pdf->getPage();
$pdf->Output('generated.pdf', 'I');
And that's how it looks:
Looks all good on html though
just changed
$pdf->writeHTML(utf8_encode($html), true, false, true, false, '');
to
$pdf->writeHTML(($html), true, false, true, false, '');
and it worked!
You need to change the constructor, Set UTF-8 false and change new charset like below:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false)
In above example, I set encoding ISO-8859-1 instead of UTF-8 and I change true to false.
header('Content-type: text/html; charset=utf-8');
in addition to be really sure the browser understands, add a meta-tag:

Pagination and loop through total pages count

I am building a small movie database to learn php. I make a call to the API from The Movie DB:
$url = "https://api.themoviedb.org/3/search/movie?api_key=". $apiKey . "&" . $language . "&query=". $searchTerm ."&". $sortBy .""; // path to your JSON file
The results for the search term brother looks like:
object(stdClass)#2 (4) {
["page"]=>
int(1)
["total_results"]=>
int(1202)
["total_pages"]=>
int(61)
["results"]=>
array(20) {
[0]=>
object(stdClass)#3 (14) {
["popularity"]=>
float(18.305)
["vote_count"]=>
int(219)
["video"]=>
bool(false)
["poster_path"]=>
string(32) "/frhzQ5JJ29R3kXuVq3CRYQSczpn.jpg"
["id"]=>
int(327)
["adult"]=>
bool(false)
["backdrop_path"]=>
string(32) "/cL1VX6WllejQQhGTUGGWHW25yor.jpg"
["original_language"]=>
string(2) "en"
["original_title"]=>
string(7) "Brother"
["genre_ids"]=>
array(3) {
[0]=>
int(80)
[1]=>
int(18)
[2]=>
int(53)
}
["title"]=>
string(7) "Brother"
["vote_average"]=>
int(7)
["overview"]=>
string(613) "Ausgestoßen durch die Bruderschaft seines Yakuza-Clans wird der eiskalte Killer Yamamoto gezwungen, Tokio Richtung Los Angeles zu verlassen. Dort angekommen findet er sich selbst sehr schnell in der alten Routine seines gewalttätigen Tokio Leben wieder. In kürzester Zeit formt er eine neue skrupellos operierende Bruderschaft um sich herum. Macht, Mädchen und Geld liegen im zu Füssen. Aber das ist dem ehemaligen Yakuza Killer Yamamoto nicht genug. Er will alles! Er startet einen blutigen und erbitterten Kampf gegen die Mafia und muss wieder einmal feststellen, dass er von seinen Brüdern verraten wird."
The results show that I am one page 1 of 61 with total results of 1202.
I know that I have to loop through the total_pages but I don't know how to build that query around the API call.
I am thankful for every hint.
From their documentation you can see that there is an optional parameter "page". So you can send following requests for each page like:
$url = "https://api.themoviedb.org/3/search/movie?api_key=". $apiKey . "&" . $language . "&query=". $searchTerm ."&". $sortBy . "&page=" . "$pageNumber";

Convert spaces, umlauts and special character letters for link

How can I make the browser accept the letters umlauts and spaces without decoding?
$str = 'Häuser & Hühner können nicht „Hallo“ sagen!';
$strent = htmlentities($str);
$strurl = rawurlencode($str);
echo ''.$str.'';
echo ''.$str.'';
unexpected output
Häuser & Hühner können nicht „Hallo“ sagen!
Häuser & Hühner können nicht „Hallo“ sagen!
expected ouput
Häuser & Hühner können nicht „Hallo“ sagen!
Current working result
$str = 'Häuser & Hühner können nicht „Hallo“ sagen!';
$strurl = rawurlencode($str);
echo ''.$str.'';
Häuser & Hühner können nicht „Hallo“ sagen!

Regex Double Quotes and html tags

I read data from csv file. And wrote it to string and now need to classify those data.
if (($handle = fopen($_FILES['app_bundle_upload_type']['tmp_name']['file'], "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
for ($c=0; $c < $num; $c++) {
$result.= $data[$c] . "<br />\n";
}
}
}
How Can I correctly use Regex to group this sort od data. I do care about everything inside " ". I tried regex = '/"(.*?)"/s'; But can't escape double quotes inside other quotes. What shall I do ? And ofc there's this whole html data which I do not have right now what to do.
That is my string
1;"admin_loginIncorrect";"Podane hasło jest nieprawidłowe";"1";"0"
2;"admin_logOut";"Wyloguj";"1";"0"
3786;"tutorial_text_3";"Wenn Sie
ein Produkt kaufen möchten dessen Preis Sie soeben aufgedeckt haben
tun Sie es schnell und klicken Sie auf ""kaufen"" - Sie haben dafür
20 Sekunden. Sie können aber eine Stunde oder einen Tag warten um zu
sehen ob der Preis noch weiter fällt. Das Aufdecken des Preises von
anderen Benutzern reduziert den Preis kontinuierlich weiter. Denken
Sie jedoch daran dass wenn Sie zu lange warten jemand wird schneller
sein als Sie!. ;5";"0" 3914;"auction_desc_22297";"MacBook 12" 256GB - Space Gray256 GB pamięci masowej flash z magistralą PCIe
na płycie głównejDwurdzeniowy procesorIntel Core
m3 1,1 GHzTurbo Boost do 2,2 GHz8 GB pamięci
RAMIntel HD Graphics 515Zawartość
opakowaniaMacBookZasilacz USB-C o mocy 29 WPrzewód zasilający USB-C (2 m)Cena zawiera koszt przesyłki."'"5";"0"
#EDIT
I started in wrong way. Using regex was to complex task. Thanks to fgetcsv i could do it a lot easier
if (($handle = fopen($fileName, "r")) !== FALSE) {
while (($data = fgetcsv($handle)) !== FALSE) { .... }}
It reads row by row and give it back in array
$data[$i]
Try this:
<?php
$string = '1;"admin_loginIncorrect";"Podane hasło jest nieprawidłowe";"1";"0" 2;"admin_logOut";"Wyloguj";"1";"0" 3786;"tutorial_text_3";"Wenn Sie ein Produkt kaufen möchten dessen Preis Sie soeben aufgedeckt haben tun Sie es schnell und klicken Sie auf ""kaufen"" - Sie haben dafür 20 Sekunden. Sie können aber eine Stunde oder einen Tag warten um zu sehen ob der Preis noch weiter fällt. Das Aufdecken des Preises von anderen Benutzern reduziert den Preis kontinuierlich weiter. Denken Sie jedoch daran dass wenn Sie zu lange warten jemand wird schneller sein als Sie!. ;5";"0" 3914;"auction_desc_22297";"MacBook 12" 256GB - Space Gray
256 GB pamięci masowej flash z magistralą PCIe na płycie głównejDwurdzeniowy procesorIntel Core m3 1,1 GHzTurbo Boost do 2,2 GHz8 GB pamięci RAMIntel HD Graphics 515
Zawartość opakowaniaMacBookZasilacz USB-C o mocy 29 WPrzewód zasilający USB-C (2 m)
Cena zawiera koszt przesyłki."\'"5";"0"';
$regex = '#"(?<quotes>[^"]*)"#';
preg_match_all($regex, $string, $matches);
var_dump($matches['quotes']);
See it here : https://3v4l.org/8Z8J5

Categories