- Huawei Watch GT 3 Pro - korlátolt szépség
- iOS alkalmazások
- Megérkeztek a Xiaomi 15T sorozatának telefonjai Magyarországra
- Bemutatkozott a Motorola vékonymobilja
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- iPhone topik
- Apple iPhone 16 Pro - rutinvizsga
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Android alkalmazások - szoftver kibeszélő topik
- Filléres telefonok érkeztek a ZTE-től
-
Mobilarena
WordPress tartalom kezelő rendszer (CMS) topik
Új hozzászólás Aktív témák
-
trisztan94
őstag
Újabb WP plugin fejlesztős kérdésem lenne. Végül rájöttem, hogy a legjobb egy custom post type készítése csak egy title beírási capability-vel, mert az már alapból tudja a hozzáadás és törlést.
Ezeket a hookokat adtam hozzá:
// Action hook to intercept Wordpress' default post saving function and redirect to ours
add_action('save_post', 'zip_code_save');
$validator = new Validator();
// Called after the redirect
add_action('admin_head-post.php', array($validator, 'add_plugin_notice'));zip_code_save fügvény:
public function zip_code_save() {
global $post;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if (isset($_POST['post_type']) && $_POST['post_type'] == 'zip_code') {
$validator = new Validator();
if (!$validator->validate(get_the_title($post->ID))) {
$validator->update_option(1);
return false;
} else {
update_post_meta(
$post->ID,
'zip_code', get_the_title($post->ID));
}
}
}Validator osztály:
class Validator {
//This for your your admin_notices hook
function show_error() {
echo '<div class="error">
<p>The ZIP Code entered is not valid. <b>Note</b>: only US ZIP codes are accepted.</p>
</div>';
}
//update option when admin_notices is needed or not
function update_option($val) {
update_option('display_my_admin_message', $val);
}
//function to use for your admin notice
function add_plugin_notice() {
if (get_option('display_my_admin_message') == 1) {
// check whether to display the message
add_action('admin_notices', array(&$this, 'show_error'));
// turn off the message
update_option('display_my_admin_message', 0);
}
}
function validate($input) {
$zip = (isset($input) && !empty($input)) ? sanitize_text_field($input) : '';
if ( !preg_match( '/(^\d{5}$)|(^\d{5}-\d{4}$)/', $zip ) ) {
return false;
} else {
return true;
}
}
}Ez azt csinálja, hogy ha helytelen a beírt kód, akkor kiírja szépen a hibaüzenetet, azonban attól függetlenül ugyanúgy publikálja. Tehát a probléma az, hogy validációtól függetlenül publikálja a postot.
Valakinek ötlet?
Köszi!
Új hozzászólás Aktív témák
- Apple iPhone 12 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- LG 27UL550-W - 27" IPS / 3840x2160 4K / 60Hz 5ms / HDR10 / AMD FreeSync
- Apple MacBook Pro 13" 2019 256/8GB Akku:40 ciklus! Magyar
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Független & karcmentes Xiaomi Redmi Note 10 Pro 6GB RAM / 128GB / Onyx Grey
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest