public static void DashboardWidget(this WpApp app, string widget_id, string widget_name, Action <TextWriter> htmlwriter) { app.AddFilter( "wp_dashboard_setup", new Action(() => app.Context.Call("wp_add_dashboard_widget", (PhpValue)widget_id, (PhpValue)widget_name, PhpValue.FromClass(new Action(() => htmlwriter(app.Context.Output)))))); }
public static void Footer(this WpApp app, Action <TextWriter> callback, long priority = 100) { app.AddFilter("wp_footer", new Action(() => { callback(app.Context.Output); }), priority); }
/// <summary> /// Invoked by PHP plugin implementation (peachpie-api.php) to bridge into .NET. /// </summary> public virtual void AppStarted(WpApp app) { // activate plugins: foreach (var plugin in _plugins) { plugin.Configure(app); } }
public static void AddAjaxAction(this WpApp app, string action, Func <string> callback) { app.AddFilter("wp_ajax_" + action, new Action(() => { app.Context.Echo(callback()); app.Context.Call("wp_die"); })); }
/// <summary> /// Invoked by PHP plugin implementation (DotNetBridge.php) to pass the WpApp PHP class. /// </summary> public static void AppStarted(Context ctx, WpApp host) { if (ctx.Globals["peachpie_wp_loader"].AsObject() is WpLoader loader) { loader.AppStarted(host); } else { throw new InvalidOperationException(); } }
public static string?AddManagementPage(this WpApp app, string pageTitle, string menuTitle, string capability, string slug, Action <TextWriter> callback, int?position = null) { var hook = app.Context.Call("add_management_page", pageTitle, menuTitle, capability, slug, new Action(() => { callback(app.Context.Output); }), position.HasValue ? position.Value : PhpValue.Null); if (hook.IsFalse) { return(null); } return(hook.ToString()); }
public static PhpValue GetUserMeta(this WpApp app, int userId, string metaKey, bool single = false) => GetMetaData(app, "user", userId, metaKey, single);
public static bool AddUserMeta(this WpApp app, int userid, string metakey, PhpValue metavalue, bool unique = false) { return(app.Context .Call("add_user_meta", (PhpValue)userid, (PhpValue)metakey, metavalue, unique) .IsInteger()); }
public static string?GetAdminEmail(this WpApp app) { return(GetOption(app, "admin_email").IsString(out var email) ? email : null); }
public static void DashboardRightNow(this WpApp app, Action <TextWriter> htmlwriter) { app.AddFilter( "rightnow_end", new Action <Context>(ctx => htmlwriter(ctx.Output))); }
public static void FilterPermalink(this WpApp app, the_permalink_filter filter) => app.AddFilter("the_permalink", filter);
public static void FilterTitle(this WpApp app, the_title_filter filter) => app.AddFilter("the_title", filter);
public static string GetVersion(this WpApp app) => app.Context.Globals["wp_version"].ToString();
public static bool UpdateOption(this WpApp app, string option, PhpValue value) { return((bool)app.Context.Call("update_option", option, value)); }
public static void AdminNotices(this WpApp app, Func <string> callback) { app.AddFilter("admin_notices", new Action(() => app.Context.Echo(callback()))); }
public static void AdminMenu(this WpApp app, Action action) => app.AddFilter("admin_menu", action);
public static void OnAdminInit(this WpApp app, Action action) => app.AddFilter("admin_init", action);
public static PhpValue GetMetaData(this WpApp app, string metaType, int objectId, string metaKey, bool single = false) { return(app.Context.Call("get_metadata", metaType, (PhpValue)objectId, metaKey, single)); }
public static void FilterContent(this WpApp app, the_content_filter filter) => app.AddFilter("the_content", filter);
public static PhpValue GetOption(this WpApp app, string option, PhpValue @default = default /*NULL*/) { return(app.Context.Call("get_option", option, @default)); }
public static string GetSiteUrl(this WpApp app, string path = "", string?scheme = null) => app.Context.Call("site_url", path, scheme).ToString();