-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunction.php
118 lines (103 loc) · 3.97 KB
/
function.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
/*
Plugin Name: RN Landingpages
Description: Landingpages-Plugin
Version: 0.0.01 Beta 2023
Author: Ruben Norgall www.ruben-norgall.de
*/
// Füge ein Menü im WordPress-Backend hinzu
function rn_landingpages_menu() {
add_menu_page(
'My Landingpages',
'My Landingpages',
'manage_options',
'my-landingpage-plugin',
'landingpage_site_setting_page',
'dashicons-car'
);
}
add_action('admin_menu', 'rn_landingpages_menu');
// Erstelle die Backend-Seite
function landingpage_site_setting_page() {
// Überprüfe, ob der Benutzer die erforderlichen Berechtigungen hat
if (!current_user_can('manage_options')) {
wp_die('Du hast keine Berechtigung, auf diese Seite zuzugreifen.');
}
// Verarbeite Formulardaten, wenn das Formular gesendet wird
if (isset($_POST['landingpage_controll'])) {
$aktiv = isset($_POST['landingpage_controll']['aktiv_option']) ? 1 : 0;
update_option('landingpage_controll', $aktiv);
echo '<div class="updated"><p>Einstellungen gespeichert.</p></div>';
}
// Lese die aktuelle Option "aktiv"
$aktiv_option = get_option('landingpage_controll', 0);
// Formularausgabe
?>
<div class="wrap">
<h2>Meine Landingpages Einstellungen</h2>
<p>benutzerdefinierte Einstellungen</p>
<?php
var_dump(get_option('landingpage_controll'));
?>
<form method="post">
<table class="form-table">
<tr valign="top">
<th scope="row">Aktiv</th>
<td>
<label>
<input type="checkbox" name="landingpage_controll[aktiv_option]" <?php checked(1, $aktiv_option); ?>>
Aktivieren
</label>
</td>
</tr>
</table>
<input type="hidden" name="landingpage_controll[submit]" value="1">
<?php submit_button('Einstellungen speichern'); ?>
</form>
</form>
</div>
<?php
}
// Füge benutzerdefinierte Einstellungen hinzu und verarbeite sie
// Du kannst hier Formularverarbeitung und Speichern von Einstellungen hinzufügen
// Zum Beispiel:
function save_landingpages_backend_einstellungen() {
if (isset($_POST['landingpages-menu'])) {
update_option('landingpage_controll', $_POST['landingpages-menu']);
}
}
add_action('admin_post_speichere_einstellungen', 'save_landingpages_backend_einstellungen');
// POST TYPE
function create_landingpage_posttype() {
$labels = array(
'name' => 'Landingpages',
'singular_name' => 'Landingpage',
'menu_name' => 'Landingpages',
'add_new' => 'Neue Landingpage hinzufügen',
'add_new_item' => 'Neue Landingpage hinzufügen',
'edit' => 'Bearbeiten',
'edit_item' => 'Landingpage bearbeiten',
'new_item' => 'Neue Landingpage',
'view' => 'Anzeigen',
'view_item' => 'Landingpage anzeigen',
'search_items' => 'Landingpages durchsuchen',
'not_found' => 'Keine Landingpages gefunden',
'not_found_in_trash' => 'Keine Landingpages im Papierkorb gefunden',
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => 5,
'menu_icon' => 'dashicons-money-alt',
'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields'),
);
register_post_type('rn_landingpage', $args);
}
add_action('init', 'create_landingpage_posttype');