Break toevoegen in PHP

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Anoniem: 852803

Topicstarter
Ik wil tussen Voorraad! en voor een break hebben.
...

In PHP wordt de tag <br> gebruikt echter krijg je dit letterlijk op de website te zien als ik dit hier invoer.
weet iemand hoe ik een break in kan voeren met deze code

if ( $_product->is_in_stock() ) {
$availability['availability'] = __('Op voorraad! voor 17:00 besteld morgen in huis', 'woocommerce');
}

ik heb al geprobeerd met de " te werken en verschillende oplossingen die op w3schools te vinden zijn, dit heeft allemaal niet gewerkt.

Alle reacties


Acties:
  • 0 Henk 'm!

  • deagan1337
  • Registratie: Oktober 2014
  • Laatst online: 03-07 11:48
if ( $_product->is_in_stock() ) {
$availability['availability'] = __('Op voorraad!\nvoor 17:00 besteld morgen in huis', 'woocommerce');
}

of in html

if ( $_product->is_in_stock() ) {
$availability['availability'] = __('Op voorraad!<br />voor 17:00 besteld morgen in huis', 'woocommerce');
}

Acties:
  • 0 Henk 'm!

  • emnich
  • Registratie: November 2012
  • Niet online

emnich

kom je hier vaker?

deagan1337 schreef op dinsdag 2 oktober 2018 @ 14:07:
if ( $_product->is_in_stock() ) {
$availability['availability'] = __('Op voorraad!\nvoor 17:00 besteld morgen in huis', 'woocommerce');
}

of in html

if ( $_product->is_in_stock() ) {
$availability['availability'] = __('Op voorraad!<br />voor 17:00 besteld morgen in huis', 'woocommerce');
}
newline (\n) moet tussen dubbele quotes (")
@Anoniem: 852803 als new line niet werkt kijk dan eens naar htmlentities en verwante functies

Acties:
  • 0 Henk 'm!

Anoniem: 852803

Topicstarter
@emnich dus als het goed is moet de newline zo toegepast worden? Of zou het in '\n' moeten omdat de rest ook met een enkele ' staat?

if ( $_product->is_in_stock() ) {
$availability['availability'] = __('Op voorraad!"\n"voor 17:00 besteld morgen in huis', 'woocommerce');
}

[ Voor 13% gewijzigd door Anoniem: 852803 op 03-10-2018 11:04 ]


Acties:
  • 0 Henk 'm!

  • emnich
  • Registratie: November 2012
  • Niet online

emnich

kom je hier vaker?

@Anoniem: 852803 Nee, het geheel moet in ":
PHP:
1
$availability['availability'] = __("Op voorraad!\nvoor 17:00 besteld morgen in huis", 'woocommerce');


Ik zeg overigens niet dat dit de oplossing is maar als het met een new line werkt dan moet ie in elk geval tussen dubbele quotes omdat je anders gewoon letterlijk \n krijgt.

Acties:
  • 0 Henk 'm!

Anoniem: 852803

Topicstarter
@emnich
Ik heb ze nu beide geprobeerd en bij de oplossing <br/> krijg ik:
"Op voorraad!<br />voor 17:00 besteld morgen in huis"
als uitkomst.

Bij \n krijg ik:
Op voorraad! voor 17:00 besteld morgen in huis.
echter komt "voor 17:00 besteld morgen in huis." niet eronder te staan.

Acties:
  • 0 Henk 'm!

  • emnich
  • Registratie: November 2012
  • Niet online

emnich

kom je hier vaker?

Anoniem: 852803 schreef op woensdag 3 oktober 2018 @ 11:16:
@emnich
Ik heb ze nu beide geprobeerd en bij de oplossing <br/> krijg ik:
"Op voorraad!<br />voor 17:00 besteld morgen in huis"
als uitkomst.

Bij \n krijg ik:
Op voorraad! voor 17:00 besteld morgen in huis.
echter komt "voor 17:00 besteld morgen in huis." niet eronder te staan.
Dan quote ik mezelf maar:
emnich schreef op dinsdag 2 oktober 2018 @ 14:09:
[...]
@Anoniem: 852803 als new line niet werkt kijk dan eens naar htmlentities en verwante functies

Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 21:10
Anoniem: 852803 schreef op woensdag 3 oktober 2018 @ 11:16:
@emnich
Ik heb ze nu beide geprobeerd en bij de oplossing <br/> krijg ik:
"Op voorraad!<br />voor 17:00 besteld morgen in huis"
als uitkomst.

Bij \n krijg ik:
Op voorraad! voor 17:00 besteld morgen in huis.
echter komt "voor 17:00 besteld morgen in huis." niet eronder te staan.
Is dit nou de letterlijke output van het script, of wat je ziet in de browser?

Het is wel zo handig als je kijkt wat de letterlijke output is namelijk.

Waarschijnlijk gebruik je een template engine of iets dergelijks die (gelukkig!) htmlentities escaped. Als dat inderdaad zo is zul je dit in je template op moeten lossen, niet (of iig niet alleen) in je php-code.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 04-07 17:03

.oisyn

Moderator Devschuur®

Demotivational Speaker

emnich schreef op woensdag 3 oktober 2018 @ 11:25:
[...]


Dan quote ik mezelf maar:

[...]
Dat heeft toch geen enkel nut? Blijkbaar gooit woocommerce al een htmlentities() over die string heen anders zou hij de <br> niet letterlijk zien. Je kunt ze niet "unconverten" oid.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Anoniem: 852803

Topicstarter
@.oisyn
zou jij toevallig nog een oplossing weten?

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 04-07 17:03

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dan had ik dat wel gemeld ;). Je zult het bij woocommerce moeten zoeken, of welk framework je dan ook gebruikt om die pagina's te genereren (van die is de __() functie?)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 23:28

RM-rf

1 2 3 4 5 7 6 8 9

ik vermoed dat dat de wordpress translate functie is
https://developer.wordpress.org/reference/functions/__/

deze voegt geen htmlentities toe, ik vermoed eerder dat dat misschien gebeurt op het moment dat die waarde $availability['availability'] in de template geplaatst wordt

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Acties:
  • 0 Henk 'm!

Anoniem: 852803

Topicstarter
@.oisyn @RM-rf
Ik heb het van deze pagina en dan aangepast
https://antondevilliers.c...-stock-availability-text/

[ Voor 12% gewijzigd door Anoniem: 852803 op 03-10-2018 12:30 ]


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 21:10
Nou, zoals al gezegd, met die tutorial ga je het niet niet redden. Je moet waarschijnlijk je template wijzigen. Je zou hier een tweede variable aan mee kunnen geven, of (quick and dirty) een if statement in de template die de tweede regel toevoegd als de availability "op voorraad!" is.

Acties:
  • 0 Henk 'm!

Anoniem: 852803

Topicstarter
@mcDavid
Zou je mij kunnen helpen de (quick and dirty) if statement kunnen toevoegen, want ik denk niet dat ik daar uit kom.


add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2);
function wcs_custom_get_availability( $availability, $_product ) {
global $product;

// Change In Stock Text
if ( $_product->is_in_stock() ) {
$availability['availability'] = __('Plenty available in our store!', 'woocommerce');
}

Acties:
  • 0 Henk 'm!

  • Groentjuh
  • Registratie: September 2011
  • Laatst online: 01-07 08:13
Je moet die $availability['availability'] volgen. Die wordt ergens in de uiteindelijke HTML geplaatst.

Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 21:10
@Anoniem: 852803 al zou ik het willen zou het me niet lukken, ik heb geen flauw idee waar je die template zou kunnen vinden of watvoor template-engine er uberhaupt gebruikt wordt. Begin eens om dat uit te zoeken zou ik zeggen. Als je dat gevonden hebt kun je wijzigingen maken, en als het niet lukt komt er vast weer een gerichte vraag naarboven waar we je hier wél mee kunnen helpen.

Er is niemand zo gek om volledig voor jou uit te zoeken wat je moet doen en alles voor te kauwen. Als je daarnaar op zoek bent kun je beter een professional inhuren.
Pagina: 1