我正试图使一个插件,以便您可以显示已在不同的网站在自己的WordPress网站的事件,我得到了一个致命的错误,不知道如何进一步现在。
Copyright © 2019 www.wamp64.com All Rights Reserved.粤ICP备15044777号-1粤公网安备4401050200000114号
这是我的代码:
<?php
/*
Plugin Name: Spond Event
Description: Display Spond events on your WordPress site.
Version: 1.0
Author: Merel Rose de Vries
*/
// spond-plugin.php
session_start();
include_once(plugin_dir_path(__FILE__) . 'spond-class.php');
function spond_shortcode($atts) {
// Check if the form is submitted
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['logout']) && $_POST['logout'] == 1) {
// Logout action: unset the session variable
unset($_SESSION['spond_logged_in']);
return 'Logged out successfully.';
}
$username = isset($_POST['username']) ? sanitize_text_field($_POST['username']) : '';
$password = isset($_POST['password']) ? sanitize_text_field($_POST['password']) : '';
// Assuming the form is submitted, redirect with form data as query parameters
wp_redirect(add_query_arg(array('username' => $username, 'password' => $password), get_permalink()));
exit();
}
// If there are query parameters, attempt to log in
if (isset($_GET['username']) && isset($_GET['password'])) {
$username = sanitize_text_field($_GET['username']);
$password = sanitize_text_field($_GET['password']);
// Your Spond class instantiation
$spond = new Spond($username, $password);
$spond->login();
// Set a session variable to indicate the user is logged in
$_SESSION['spond_logged_in'] = true;
// Get and display events
ob_start();
$spond->get_events('74ED14831B694B679A0CB778A33D860F');
return ob_get_clean();
}
// Check if the user has already logged in
if (isset($_SESSION['spond_logged_in']) && $_SESSION['spond_logged_in']) {
// User has already logged in, keep the session active
return display_events();
}
// User is not logged in, display the login form
ob_start();
your_plugin_page();
return ob_get_clean();
}
// Register the shortcode
add_shortcode('spond_events', 'spond_shortcode');
// Add menu item
add_action('admin_menu', 'spondplugin');
function spondplugin() {
add_menu_page(
'Spond-plugin',
'Spond-plugin',
'manage_options',
'your_plugin_menu',
'your_plugin_page'
);
add_submenu_page(
'your_plugin_menu',
'Submenu Page',
'Submenu Page',
'manage_options',
'your-submenu-page',
'your_submenu_page'
);
}
// Create plugin page content
function your_plugin_page() {
echo '<div class="wrap">';
echo '<h1>Spond Evenementen</h1>';
echo '</div>';
// Check if the user is logged in
if (isset($_SESSION['spond_logged_in']) && $_SESSION['spond_logged_in']) {
// Display logout button
echo '<form action="" method="post">';
echo '<input type="hidden" name="logout" value="1">';
echo '<button type="submit">Logout</button>';
echo '</form>';
// Display events
display_events();
} else {
// Display the login form
echo '<form action="" method="post">';
echo '<div>';
echo '<div class="container">';
echo '<label for="username"><b>Username</b></label>';
echo '<input type="text" placeholder="Enter Username" name="username" required>';
echo '<label for="password"><b>Password</b></label>';
echo '<input type="password" placeholder="Enter Password" name="password" required>';
echo '<button type="submit">fetch</button>';
echo '</div>';
echo '</form>';
}
}
// ...
// Display events function
function display_events() {
ob_start();
$spond = new Spond(); // Instantiate with default username and password
$spond->get_events('74ED14831B694B679A0CB778A33D860F');
echo ob_get_clean();
}
?>
个字符
1条答案
按热度按时间zengzsys1#
ArgumentCountError是自描述的,你的Spond类的初始化没有使用正确的参数计数。你的
__construct
方法需要$username
和$password
,但是类的初始化没有传递:$spond = new Spond();
。调用
new Spond()
的正确方法是$spond = new Spond($username, $password);
,参数包含持有适当值的变量。